열의 NA 값을 다른 열의 수정 날짜로 바꿉니다.

다음 데이터 세트가 있습니다.

  A          B
2007-11-22 2004-11-18
      <NA> 2004-11-10

A 열의 값이 NA이면이 값을 B의 날짜로 바꾸고 싶습니다. 단 25 일이 더 추가되었습니다. 결과는 다음과 같습니다.

   A          B
2007-11-22 2004-11-18
2004-12-05 2004-11-10

지금까지 다음 if else 공식을 시도했지만 성공하지 못했습니다.

library(lubridate)
data$A<- ifelse(is.na(data$A),data$B+days(25),data$A)

아무도 나에게 무엇이 잘못되었는지 말하거나 대체 해결책을 줄 수 있습니까? 내 데이터 세트를 빌드하는 코드는 다음과 같습니다.

A<-c("2007-11-22 01:00:00", NA)
B<-c("2004-11-18","2004-11-10")
data<-data.frame(A,B)
data$A<-as.Date(data$A);data$B<-as.Date(data$B)
ThomasIsCoding

문제의 원인은의 소스 코드에서 추적 할 수 있습니다 ifelse. 를 입력하면 View(ifelse)아래와 같이 소스 코드 하단에 몇 줄이 표시됩니다.

    ans <- test
    len <- length(ans)
    ypos <- which(test)
    npos <- which(!test)
    if (length(ypos) > 0L)
        ans[ypos] <- rep(yes, length.out = len)[ypos]
    if (length(npos) > 0L)
        ans[npos] <- rep(no, length.out = len)[npos]
    ans

여기서는 test논리 배열이며 ans의 복사본으로 초기화됩니다 test. 실행할 때 ans[ypos] <- rep(yes, length.out = len)[ypos]의 클래스 ansnumeric대신으로 강제 변환됩니다 Date. 그렇기 때문에을 A사용한 후 열에 정수가 ifelse있습니다.


아래 코드를 시도해 볼 수 있습니다.

data$A <- as.Date(ifelse(is.na(data$A), data$B + days(25), data$A), origin = "1970-01-01")

주는

> data
           A          B
1 2007-11-22 2004-11-18
2 2004-12-05 2004-11-10

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

NA 값을 다른 열의 합계로 바꿉니다.

분류에서Dev

특정 NA를 열별로 다른 행의 값으로 바꿉니다.

분류에서Dev

날짜의 NA를 다른 날짜로 바꿉니다.

분류에서Dev

다른 열의 값을 기반으로 여러 열의 값을 NA로 바꿉니다.

분류에서Dev

열 범위의 값이 다른 열에없는 경우 NA로 바꿉니다.

분류에서Dev

다른 열의 합의 값에 따라 열 내의 NA 값을 바꿉니다.

분류에서Dev

특정 열의 비 NA 값을 R의 다른 열 값으로 바꾸기

분류에서Dev

열의 값을 팬더의 다른 열에 특정 값이있는 평균으로 바꿉니다.

분류에서Dev

0.01을 다른 열의 최대 행 값으로 바꿉니다.

분류에서Dev

특정 열의 NA를 동일한 열의 동일한 키 값으로 바꿉니다.

분류에서Dev

mutate 및 gsub를 사용하여 특정 열의 모든 값을 NA로 바꿉니다.

분류에서Dev

팬더의 특정 조건에 따라 df의 열을 다른 df의 다른 열로 바꿉니다.

분류에서Dev

na를 다른 df의 값으로 바꿉니다.

분류에서Dev

다른 열의 nan을 기반으로 pandas 열의 값을 바꿉니다.

분류에서Dev

Dataframe의 두 특정 열에있는 값의 10 %를 NA 값으로 무작위로 바꿉니다.

분류에서Dev

조건부로 열 값을 다른 열의 값으로 바꿉니다.

분류에서Dev

열의 모든 값을 해당 변수의 수학으로 바꿉니다.

분류에서Dev

NA를 r의 각 그룹에 대해 동일한 열의 다른 행에있는 값으로 바꿉니다.

분류에서Dev

날짜 유형 열이있을 때 문자열 'NA'를 찾아서 NA로 바꿉니다.

분류에서Dev

다른 두 열의 값이 같으면 열 값을 다른 열로 바꿉니다.

분류에서Dev

"0 열"을 numpy 배열의 값으로 바꿉니다.

분류에서Dev

다른 두 열 값에 대해 열의 값을 바꿉니다

분류에서Dev

특정 열의 내용을 sed / awk로 바꿉니다.

분류에서Dev

많은 열의 날짜를 1로 바꾸고 NA를 0으로 바꿉니다.

분류에서Dev

NA를 여러 열의 루프에서 그룹 값으로 바꿉니다.

분류에서Dev

열 셀의 수식 값과 공백을 0으로 바꿉니다.

분류에서Dev

Pandas의 날짜 조건에 따라 한 열의 값을 NaN으로 바꿉니다.

분류에서Dev

Pandas : 다른 열에있는 경우 열의 값을 세 번째 열의 값으로 바꿉니다.

분류에서Dev

파일의 문자열을 둘 다 변수에 저장된 다른 문자열로 바꿉니다.

Related 관련 기사

  1. 1

    NA 값을 다른 열의 합계로 바꿉니다.

  2. 2

    특정 NA를 열별로 다른 행의 값으로 바꿉니다.

  3. 3

    날짜의 NA를 다른 날짜로 바꿉니다.

  4. 4

    다른 열의 값을 기반으로 여러 열의 값을 NA로 바꿉니다.

  5. 5

    열 범위의 값이 다른 열에없는 경우 NA로 바꿉니다.

  6. 6

    다른 열의 합의 값에 따라 열 내의 NA 값을 바꿉니다.

  7. 7

    특정 열의 비 NA 값을 R의 다른 열 값으로 바꾸기

  8. 8

    열의 값을 팬더의 다른 열에 특정 값이있는 평균으로 바꿉니다.

  9. 9

    0.01을 다른 열의 최대 행 값으로 바꿉니다.

  10. 10

    특정 열의 NA를 동일한 열의 동일한 키 값으로 바꿉니다.

  11. 11

    mutate 및 gsub를 사용하여 특정 열의 모든 값을 NA로 바꿉니다.

  12. 12

    팬더의 특정 조건에 따라 df의 열을 다른 df의 다른 열로 바꿉니다.

  13. 13

    na를 다른 df의 값으로 바꿉니다.

  14. 14

    다른 열의 nan을 기반으로 pandas 열의 값을 바꿉니다.

  15. 15

    Dataframe의 두 특정 열에있는 값의 10 %를 NA 값으로 무작위로 바꿉니다.

  16. 16

    조건부로 열 값을 다른 열의 값으로 바꿉니다.

  17. 17

    열의 모든 값을 해당 변수의 수학으로 바꿉니다.

  18. 18

    NA를 r의 각 그룹에 대해 동일한 열의 다른 행에있는 값으로 바꿉니다.

  19. 19

    날짜 유형 열이있을 때 문자열 'NA'를 찾아서 NA로 바꿉니다.

  20. 20

    다른 두 열의 값이 같으면 열 값을 다른 열로 바꿉니다.

  21. 21

    "0 열"을 numpy 배열의 값으로 바꿉니다.

  22. 22

    다른 두 열 값에 대해 열의 값을 바꿉니다

  23. 23

    특정 열의 내용을 sed / awk로 바꿉니다.

  24. 24

    많은 열의 날짜를 1로 바꾸고 NA를 0으로 바꿉니다.

  25. 25

    NA를 여러 열의 루프에서 그룹 값으로 바꿉니다.

  26. 26

    열 셀의 수식 값과 공백을 0으로 바꿉니다.

  27. 27

    Pandas의 날짜 조건에 따라 한 열의 값을 NaN으로 바꿉니다.

  28. 28

    Pandas : 다른 열에있는 경우 열의 값을 세 번째 열의 값으로 바꿉니다.

  29. 29

    파일의 문자열을 둘 다 변수에 저장된 다른 문자열로 바꿉니다.

뜨겁다태그

보관