簡體   English   中英

比較連續的列單元格值並替換其他列值

[英]compare consecutive columns cell values and replace the other column values

我有一個下面顯示的數據框,在這里我要比較lse列中的連續值。 如果lse 0的值后跟1 ,我想將lseEND_DATE的值設為0作為NA輸入:

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"
  }
}

誰能幫我 ?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM