r - 将后续的非 na 值设置为 NA

标签 r

将每个具有非 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/

相关文章:

r - 使用 R markdown 和 knit 时避免文本溢出到页边距

从矩阵中删除一列

从数据中删除所有二进制变量

r - R中的运动数据分析;航类和时间子采样

rm() 似乎没有清空我的 R 工作区

r - 如何在R中获取数组的列索引矩阵?

c++ - 从 sourceCpp 移动到带有 Rcpp 的包

r - 插入符交叉验证

r - purrr::map 相当于 dplyr::do

r - 从 r 矩阵的每一行中减去不同的向量