【发布时间】:2013-12-15 22:02:28
【问题描述】:
我有一个像
这样的向量 a <- c(4,2,7,6,8,9,3,1,12,13)
我想用 NA 替换所有小于以前的元素,我的示例的结果应该是:
[1] 4 NA 7 NA 8 9 NA NA 12 13
我考虑过使用 for 循环,但无法提出解决方案。还有其他选择吗?
(我的下一步是使用 na.approx() 通过线性插值替换 NA'y)
感谢使用 diff() 的提示。但是,我认识到我上面的示例并未涵盖我的数据集中的所有情况,因此这是一个更好的示例: 对于矢量
b <- c(4,2,7,6,8,9,3,1,5,7,12,13)
我想买
[1] 4 NA 7 NA 8 9 NA NA NA NA 12 13
同时
b[diff(c(b[1], b)) < 0] <- NA
给我
[1] 4 NA 7 NA 8 9 NA NA 5 7 12 13
【问题讨论】:
标签: r loops if-statement data-manipulation