gpt4 book ai didi

将 NA 替换为具有限制的先前值

转载 作者:行者123 更新时间:2023-12-04 13:46:29 25 4
gpt4 key购买 nike

我想更换最多n具有最新非 NA 值的向量中的 NA 值。

例如,如果:

a <- c(1,NA,NA,NA,NA,NA,2,NA,1,NA,NA,NA)
n <- 2

我想获得:
c(1,1,1,NA,NA,NA,2,2,1,1,1,NA)
n是可以由给定元素替换的 NA 值的最大数量)。

我知道 na.locf()功能,但我不知道如何设置限制 n .有可能做到吗?

最佳答案

这是使用 na.locf 的选项和 rle

library(zoo)
r <- rle(is.na(a))
a <- na.locf(a)
is.na(a) <- sequence(r$lengths) > n & rep(r$values, r$lengths)
a
# [1] 1 1 1 NA NA NA 2 2 1 1 1 NA

所以在这里我首先计算了 a 中元素的游程长度(包括 NA 条目),然后使用 na.locf 替换所有 NA最后将这些元素转回 NA,其中游程长度大于 n和元素是 NA .

关于将 NA 替换为具有限制的先前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43207951/

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