如何在 R 数据框列中用下一个位置的第一个非零值替换零?
为了用数据框列中下一个位置的第一个非零值替换零,我们可以按照以下步骤操作:
- 首先,创建一个数据框。
- 然后,使用 zoo 包中的 na.locf 函数将数据框列中零替换为下一个位置的第一个非零值。
创建数据框
让我们创建一个如下所示的数据框:
> x<-sample(0:5,20,replace=TRUE) > df<-data.frame(x) > df
执行上述脚本后,将生成以下输出(由于随机化,此输出会因您的系统而异):
x 1 5 2 4 3 2 4 2 5 5 6 4 7 1 8 1 9 5 10 4 11 2 12 4 13 0 14 2 15 3 16 1 17 0 18 2 19 3 20 4
用下一个位置的第一个非零值替换零
使用 zoo 包的 na.locf 函数在 df 的 x 列中用下一个位置的第一个非零值替换零:
> library(zoo) > df$x<-na.locf(with(df,ifelse(x==0,NA_real_,x)),fromLast=TRUE) > df
输出
x 1 5 2 4 3 2 4 2 5 5 6 4 7 1 8 1 9 5 10 4 11 2 12 4 13 2 14 2 15 3 16 1 17 2 18 2 19 3 20 4
广告