gpt4 book ai didi

R - 用前一列的值填充一个单元格

转载 作者:行者123 更新时间:2023-12-04 10:32:56 25 4
gpt4 key购买 nike

我有这样一个数据框

x <- c(1, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0)
y <- c(10:20)
dat <- rbind(x, y)

我不希望 X 行包含 0。相反,我想用最近的非零列中的值替换 0。

预期的输出是

1    1    1    1    2    2    2    3    3     3     3
10 11 12 13 14 15 16 17 18 19 20

这类似于找到的解决方案 here ,但按列操作而不是按行操作。

谢谢!

最佳答案

第 1 步:NA 替换所有零,因为 ...

dat[1, dat[1,] == 0] <- NA

第 2 步:... 然后您可以使用 esp 函数。旨在用 NA-values

做你想做的事
dat[1, ] <- zoo::na.locf(unlist(dat[1,]))

# dat[1, ] <- zoo::na.locf(dat[1, ])

结果:

#  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
#x 1 1 1 1 2 2 2 3 3 3 3
#y 10 11 12 13 14 15 16 17 18 19 20

由于您的示例是一个矩阵,并且您可能有一个用于真实数据的data.frame。确保将 ?unlist data.frame-row 放入向量中,以便 zoo::na.locf 可以按需要运行。

关于R - 用前一列的值填充一个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53485596/

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