gpt4 book ai didi

替换特定列中具有相同值的两行之间的 NA

转载 作者:行者123 更新时间:2023-12-05 00:14:54 25 4
gpt4 key购买 nike

我有一个包含多列的数据框,如果它们位于具有相同编号的两行之间,我想替换一列中的 NA。这是我的数据:

    v1 v2 
1 2
NA 3
NA 2
1 1
NA 7
NA 2
3 1

如果下一个非 NA 与前一个匹配,我基本上想从数据框的开头开始,并在 v1 列中使用前一个非 NA 重新替换 NA。话虽如此,我希望结果是这样的:
    v1 v2 
1 2
1 3
1 2
1 1
NA 7
NA 2
3 1

如您所见,第 2 行和第 3 行被替换为数字“1”,因为第 1 行和第 4 行的编号相同,但第 5,6 行保持不变,因为第 4 行和第 7 行中的非 na 值不相同。我一直在抽搐很多,但到目前为止没有运气。谢谢

最佳答案

这是一个使用 zoo 的想法包裹。我们基本上在两个方向上填充 NA,并将 NA 设置为这些方向之间不相等的值。

library(zoo)

ind1 <- na.locf(df$v1, fromLast = TRUE)
df$v1 <- na.locf(df$v1)
df$v1[df$v1 != ind1] <- NA

这使,

 v1 v2
1 1 2
2 1 3
3 1 2
4 1 1
5 NA 7
6 NA 2
7 3 1

关于替换特定列中具有相同值的两行之间的 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45799028/

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