R에서 특정 조건을 충족하는 케이스에 대해 누락 된 값을 0으로 어떻게 대체합니까?

André

배경:

저는 195,318 명의 참가자의 도박 행동에 대한 종단 데이터가 포함 된 대규모 데이터 세트로 작업하고 있습니다. 데이터는 도박 사업자 내에서 전자 도박 행위의 완전한 추적을 기반으로합니다. 도박 행위 데이터는 총 70 개월의 월 단위로 집계됩니다. 나는 참가자를 구분하는 ID 변수, 시간 변수 (월)뿐만 아니라 특정 월에 플레이 한 활동 일수, 주어진 달에 걸은 베팅, 주어진 달에 대한 총 손실 등과 같은 수많은 도박 행동 변수를 가지고 있습니다. 참가자는시기에 따라 다릅니다. 적극적인 도박이었습니다. 한 참가자는 2, 3, 4, 7 월에 도박을했을 수 있습니다. 다른 참가자는 3, 5, 7에 또 다른 참가자는 23, 24, 48, 65 등에 도박을했습니다. 따라서 상당한 양의 "결 측값이 있습니다. ". 하지만 모든 도박 사례가 추적되기 때문에 이 데이터 세트에서 누락은 그 사람이 도박을하지 않았 음을 의미합니다. 즉, 누락은 0과 같습니다.

문제 / 목표 :

결 측값 ( "NA")을 0으로 대치하고 싶습니다. 그러나 특정 상황에서만 그렇게하고 싶습니다. 특히 참가자의 "활성 기간"으로 정의한 값 내에서 누락 된 값에 대해 0을 대치하고 나머지는 모두 그대로 둡니다.

참가자의 활성 기간은 첫 번째 활성 달 도박과 마지막 달 도박 사이의 매월입니다. 예를 들어, 2, 3, 4, 7 개월에 도박을 한 참가자의 경우 5 개월과 6 개월에 0을 대치하고 싶습니다. 격월, 즉 1과 9에서 70까지, 저는 NA로 유지하고 싶습니다. 나는 이것을 달성하는 코드를 작성하기 위해 고군분투하고 있습니다. 저는 R을 처음 사용합니다.

예제 데이터 프레임 및 코드

아래는 내 문제에 설명 된 주요 특성을 보여주는 데이터 프레임을 생성하는 예제 코드입니다. 이 코드에는 2 명의 참가자, 1 개의 도박 행동 변수 및 10 개의 시점 ( "파도") 만 있습니다. 어떤 것이 가장 유용하고 유익한 지 확실하지 않기 때문에 데이터 프레임을 "긴 형식"및 "와이드 형식"으로 포함했습니다. 시간 변수는 "긴 형식"에 포함됩니다. 내 실제 데이터 세트는 긴 형식이지만 둘 사이를 전환하는 방법에 익숙합니다.

# Example variables and data frame in long form
  # Includes id variable, time variable and example variable
id <- c(1, 1, 1, 1, 2, 2, 2)
time <- c(2, 3, 4, 7, 3, 5, 7)
daysPlayed <- c(2, 2, 3, 3, 2, 2, 2)
dfLong <- data.frame(id = id, time = time, daysPlayed = daysPlayed)

reprex 패키지 (v0.3.0)에 의해 2020-03-28에 생성됨

# Example variables and data frame in wide form
  # Includes id variable, days played in given month 
id <- c(1, 2)
daysPlayed.1 <- c(NA, NA)
daysPlayed.2 <- c(2, NA)
daysPlayed.3 <- c(2, 2)
daysPlayed.4 <- c(3, NA)
daysPlayed.5 <- c(NA, 2)
daysPlayed.6 <- c(NA, NA)
daysPlayed.7 <- c(3, 2)
daysPlayed.8 <- c(NA, NA)
daysPlayed.9 <- c(NA, NA)
daysPlayed.10 <- c(NA, NA)
dfWide <- data.frame(id=id, daysPlayed.1 = daysPlayed.1, daysPlayed.2 = daysPlayed.2,
                 daysPlayed.3 = daysPlayed.3, daysPlayed.4 = daysPlayed.4,
                 daysPlayed.5 = daysPlayed.5, daysPlayed.6 = daysPlayed.6,
                 daysPlayed.7 = daysPlayed.7, daysPlayed.8 = daysPlayed.8,
                 daysPlayed.9 = daysPlayed.9, daysPlayed.10 = daysPlayed.10)

reprex 패키지 (v0.3.0)에 의해 2020-03-28에 생성됨

로낙 샤

이 예에서는 모든 플레이어가 즉. id9 개월의 데이터 (나중에 실제 월 값으로 변경할 수 있음)가 있으면 complete누락 된 월 시퀀스를 채우고 그 사이에있는 값을 0으로 채울 수 있습니다.

library(dplyr)

dfLong %>%
  tidyr::complete(id, time = 1:9) %>%
  group_by(id) %>%
  mutate(daysPlayed = replace(daysPlayed, is.na(daysPlayed) & 
                      between(row_number(), min(which(!is.na(daysPlayed))),
                      max(which(!is.na(daysPlayed)))), 0))


#     id  time daysPlayed
#   <dbl> <dbl>      <dbl>
# 1     1     1         NA
# 2     1     2          2
# 3     1     3          2
# 4     1     4          3
# 5     1     5          0
# 6     1     6          0
# 7     1     7          3
# 8     1     8         NA
# 9     1     9         NA
#10     2     1         NA
#11     2     2         NA
#12     2     3          2
#13     2     4          0
#14     2     5          2
#15     2     6          0
#16     2     7          2
#17     2     8         NA
#18     2     9         NA

timeid활성 기간에 대한 누락을 채우려면 다음을 사용할 수 있습니다.

dfLong %>%
  group_by(id) %>%
  tidyr::complete(time = seq(min(time), max(time)), fill = list(daysPlayed = 0))

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

조건을 충족하는 소스 DataFrame의 값으로 대상 DataFrame을 어떻게 업데이트합니까?

분류에서Dev

R : 값이 특정 조건을 충족하는 경우 데이터 프레임을 인접 행렬로 어떻게 변환합니까?

분류에서Dev

특정 if 조건을 충족하는 행에 대해 데이터 프레임에서 여러 작업 (예 : 여러 열의 값 변경)을 수행하려면 어떻게해야합니까?

분류에서Dev

특정 조건을 충족 할 때마다 행 사이에서 가장 높은 값을 찾으려면 어떻게해야합니까?

분류에서Dev

누락 된 데이터와 관련된 값을 0으로 바꾸려면 어떻게해야합니까?

분류에서Dev

R에서 누락 된 값을 평균으로 대체하여 처리하는 방법은 무엇입니까?

분류에서Dev

dplyr을 사용하여 R에서 누락 된 변수를 어떻게 대치합니까?

분류에서Dev

데이터 프레임에서 특정 열의 값을 반복적으로 대체하려면 어떻게해야합니까?

분류에서Dev

샌드 박스에서 실행되는 CRM2011 사용자 지정 워크 플로에서 외부 리소스에 대한 누락 된 권한을 수정하려면 어떻게해야합니까?

분류에서Dev

ArrayList 내에 저장된 특정 속성으로 값을 설정하려면 어떻게해야합니까?

분류에서Dev

NancyFX에서 누락 된 클레임에 대한 응답을 어떻게 정의합니까?

분류에서Dev

특정 속성이 누락 된 하위 폴더의 모든 파일을 찾으려면 어떻게합니까?

분류에서Dev

파일을 어떻게 검색하고 누락 된 것을 대체합니까?

분류에서Dev

A 열이 하나의 수식을 사용하여 A 열의 각 값에 대해 특정 조건을 충족하는 경우 B 열의 값을 어떻게 더하나요?

분류에서Dev

R : 두 가지 조건을 충족하는 특정 데이터에 대한 값 설정

분류에서Dev

R 데이터 프레임 내에서 조건이 충족 된 다음 날 데이터 값을 조건부로 제거하려면 어떻게해야합니까?

분류에서Dev

SAS에서 특정 조건이 충족되면 행 그룹에 플래그 지정을 중지하려면 어떻게해야합니까?

분류에서Dev

SAS를 사용하여 쌍 값을 누락 된 값에 넣으려면 어떻게합니까?

분류에서Dev

각도로 특정 조건으로 배열 값을 업데이트하려면 어떻게해야합니까?

분류에서Dev

R에서 곡선 맞춤에 대한 특정 값을 제외하려면 어떻게해야합니까?

분류에서Dev

조건에 따라 테라 폼에서 변수 값을 동적으로 대체하려면 어떻게해야합니까?

분류에서Dev

하나의 고유 ID가 서로 다른 행의 조건을 충족하는 SQL 쿼리에서 행을 반환하려면 어떻게해야합니까?

분류에서Dev

목록으로 정의 된 청크에 대해 DataFrame 열 값을 어떻게 합산합니까?

분류에서Dev

래핑 된 값에서 래퍼로 특정 속성을 '리프트'하려면 어떻게해야합니까?

분류에서Dev

특정 조건에서 데이터 프레임 열 값을 변경하려면 어떻게해야합니까?

분류에서Dev

SFrame에서 누락 된 값을 중앙값 또는 모드로 어떻게 바꿀 수 있습니까?

분류에서Dev

벡터의 누락 된 값을 R에서 누락되지 않은 마지막 값으로 대체

분류에서Dev

Pandas를 사용하여 한 열 집합에서 최소 / 최대 값과 인덱스를 어떻게 찾을 수 있으며 해당 열 집합에 대한 조건을 충족합니까?

분류에서Dev

조건이 충족되기 전에 행의 값을 반환하는 정렬 된 행으로 집계 스파크

Related 관련 기사

  1. 1

    조건을 충족하는 소스 DataFrame의 값으로 대상 DataFrame을 어떻게 업데이트합니까?

  2. 2

    R : 값이 특정 조건을 충족하는 경우 데이터 프레임을 인접 행렬로 어떻게 변환합니까?

  3. 3

    특정 if 조건을 충족하는 행에 대해 데이터 프레임에서 여러 작업 (예 : 여러 열의 값 변경)을 수행하려면 어떻게해야합니까?

  4. 4

    특정 조건을 충족 할 때마다 행 사이에서 가장 높은 값을 찾으려면 어떻게해야합니까?

  5. 5

    누락 된 데이터와 관련된 값을 0으로 바꾸려면 어떻게해야합니까?

  6. 6

    R에서 누락 된 값을 평균으로 대체하여 처리하는 방법은 무엇입니까?

  7. 7

    dplyr을 사용하여 R에서 누락 된 변수를 어떻게 대치합니까?

  8. 8

    데이터 프레임에서 특정 열의 값을 반복적으로 대체하려면 어떻게해야합니까?

  9. 9

    샌드 박스에서 실행되는 CRM2011 사용자 지정 워크 플로에서 외부 리소스에 대한 누락 된 권한을 수정하려면 어떻게해야합니까?

  10. 10

    ArrayList 내에 저장된 특정 속성으로 값을 설정하려면 어떻게해야합니까?

  11. 11

    NancyFX에서 누락 된 클레임에 대한 응답을 어떻게 정의합니까?

  12. 12

    특정 속성이 누락 된 하위 폴더의 모든 파일을 찾으려면 어떻게합니까?

  13. 13

    파일을 어떻게 검색하고 누락 된 것을 대체합니까?

  14. 14

    A 열이 하나의 수식을 사용하여 A 열의 각 값에 대해 특정 조건을 충족하는 경우 B 열의 값을 어떻게 더하나요?

  15. 15

    R : 두 가지 조건을 충족하는 특정 데이터에 대한 값 설정

  16. 16

    R 데이터 프레임 내에서 조건이 충족 된 다음 날 데이터 값을 조건부로 제거하려면 어떻게해야합니까?

  17. 17

    SAS에서 특정 조건이 충족되면 행 그룹에 플래그 지정을 중지하려면 어떻게해야합니까?

  18. 18

    SAS를 사용하여 쌍 값을 누락 된 값에 넣으려면 어떻게합니까?

  19. 19

    각도로 특정 조건으로 배열 값을 업데이트하려면 어떻게해야합니까?

  20. 20

    R에서 곡선 맞춤에 대한 특정 값을 제외하려면 어떻게해야합니까?

  21. 21

    조건에 따라 테라 폼에서 변수 값을 동적으로 대체하려면 어떻게해야합니까?

  22. 22

    하나의 고유 ID가 서로 다른 행의 조건을 충족하는 SQL 쿼리에서 행을 반환하려면 어떻게해야합니까?

  23. 23

    목록으로 정의 된 청크에 대해 DataFrame 열 값을 어떻게 합산합니까?

  24. 24

    래핑 된 값에서 래퍼로 특정 속성을 '리프트'하려면 어떻게해야합니까?

  25. 25

    특정 조건에서 데이터 프레임 열 값을 변경하려면 어떻게해야합니까?

  26. 26

    SFrame에서 누락 된 값을 중앙값 또는 모드로 어떻게 바꿀 수 있습니까?

  27. 27

    벡터의 누락 된 값을 R에서 누락되지 않은 마지막 값으로 대체

  28. 28

    Pandas를 사용하여 한 열 집합에서 최소 / 최대 값과 인덱스를 어떻게 찾을 수 있으며 해당 열 집합에 대한 조건을 충족합니까?

  29. 29

    조건이 충족되기 전에 행의 값을 반환하는 정렬 된 행으로 집계 스파크

뜨겁다태그

보관