如何在 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

更新于:2021年8月13日

196 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告