将每个具有非 NA 值的非 NA 值设置为“他的左边”到 NA
。
数据
a <- c(3,2,3,NA,NA,1,NA,NA,2,1,4,NA)
[1] 3 2 3 NA NA 1 NA NA 2 1 4 NA
期望的输出
[1] 3 NA NA NA NA 1 NA NA 2 NA NA NA
我的工作但丑陋的解决方案:
IND <- !(is.na(a)) & data.table::rleidv(!(is.na(a))) %>% duplicated
a[IND]<- NA
a
一定有更好的解决方案...
最佳答案
或者,
a[-1][diff(!is.na(a)) == 0] <- NA; a
# [1] 3 NA NA NA NA 1 NA NA 2 NA NA NA
关于r - 将后续的非 na 值设置为 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48585015/