如何用 R 数据框列中的下一个位置出现的第一个非零替换零?

要将零替换为 R 数据框列中下一个位置出现的第一个非零,我们可以按照以下步骤操作 -

  • 首先,创建一个数据框。

  • 然后,使用na.locfzoo 包的函数将零替换为数据框列中下一个位置出现的第一个非零。

创建数据框

例子

让我们创建一个数据框,如下所示 -

> x<-sample(0:5,20,replace=TRUE)

> df<-data.frame(x)

> df

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

输出

   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

用下一个位置出现的第一个非零替换零

例子

使用na.locfzoo 包的函数将零替换为 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

以上是 如何用 R 数据框列中的下一个位置出现的第一个非零替换零? 的全部内容, 来源链接: utcz.com/z/343849.html

回到顶部