2017-11-08 7 views
0

lse 열의 연속 값을 비교할 데이터 프레임이 아래와 같습니다. lse 0의 값이 1 다음에 경우에, 나는 NA 입력으로 0lseEND_DATE를 넣을 :연속 열의 셀 값을 비교하고 다른 열 값을 바꿉니다.

END_DATE  lse 
2016-01-20  0 
2015-08-16  1 

예상 출력 : 내가 코드 아래 시도

END_DATE  lse 
     NA  0 
2015-08-16  1 

하지만, 작동하지 않고 오류가 발생하지 않습니다.

for (i in length(loan_test1$lse)){ 
    if (length(loan_test1$lse) == 0 & length(loan_test1$lse)+1 == 1) { 
    loan_test1$END_DATE[i] <- "NA" 
    } 
} 

아무도 도와 줄 수 있습니까?

답변

1
library(lubridate) 
library(tidyverse) 
df <- data.frame(END_DATE = seq.Date(from = (today()-99),to = today(),by=1),lse = sample(c(0,1), 100, replace = TRUE)) 

df <- df %>% mutate(leadlse = lead(lse)) 

condition <- df$lse == 0 & df$leadlse ==1 

df$END_DATE[condition] = NA 

df <- df %>% select(-leadlse) 
df 

이상 단순히 :

df <- data.frame(END_DATE = seq.Date(from = (today()-99),to = today(),by=1),lse = sample(c(0,1), 100, replace = TRUE)) 

df$END_DATE[(df$lse == 0 & lead(df$lse) == 1)] <- NA 
관련 문제