gpt4 book ai didi

替换比以前小的向量元素(使用 NA)

转载 作者:行者123 更新时间:2023-12-02 07:01:16 24 4
gpt4 key购买 nike

我有一个像这样的向量

    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

最佳答案

你可以只使用diff和常规提取/子集:

a[diff(c(a[1], a)) < 0] <- NA
a
# [1] 4 NA 7 NA 8 9 NA NA 12 13

(在这里,我假设 < 0 是您要查找的内容,因为它与您的输出匹配,即使它与您的描述不完全匹配,它只是提到“小于前一个”。 )

关于替换比以前小的向量元素(使用 NA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20290302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com