如何用 R 数据框列中的先前值替换零?

要用 R 数据框列中的先前值替换零,我们可以使用na.locfzoo 包的函数,但要应用此功能,我们首先需要用 NA 替换零值。

例如,如果我们有一个名为 df 的数据框,其中包含一个名为 Rate 的列,那么我们可以使用以下命令使用以下给定的命令将 Rate 中的 0 值替换为先前的值 -

df$Rate[df$Rate==0]<-NA

na.locf(df$Rate)

示例 1

以下代码段创建了一个示例数据框 -

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

df1<-data.frame(x)

df1

创建以下数据框 -

   x

1  1

2  2

3  1

4  0

5  2

6  2

7  0

8  3

9  2

10 3

11 3

12 2

13 3

14 3

15 1

16 3

17 2

18 1

19 1

20 3

要将 df1 中的 0 替换为 NA,请将以下代码添加到上述代码段中 -

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

df1<-data.frame(x)

df1$x[df1$x==0]<-NA

df1

输出结果

如果您将上述所有给定的代码片段作为单个程序执行,它会生成以下输出: -

   x

1  1

2  2

3  1

4 NA

5  2

6  2

7 NA

8  3

9  2

10 3

11 3

12 2

13 3

14 3

15 1

16 3

17 2

18 1

19 1

20 3

要加载 zoo 包并将 NA 替换为以前的值,请将以下代码添加到上面的代码段中 -

library(zoo)

na.locf(df1$x)

输出结果

如果您将上述所有给定的代码片段作为单个程序执行,它会生成以下输出: -

[1] 1 2 1 1 2 2 2 3 2 3 3 2 3 3 1 3 2 1 1 3

示例 2

以下代码段创建了一个示例数据框 -

y<-sample(0:2,20,replace=TRUE)

df2<-data.frame(y)

df2

创建以下数据框 -

   y

1  2

2  0

3  1

4  2

5  1

6  2

7  1

8  1

9  2

10 2

11 2

12 1

13 1

14 2

15 2

16 1

17 2

18 1

19 0

20 1

要将 df2 中的 0 替换为 NA,请将以下代码添加到上述代码段中 -

y<-sample(0:2,20,replace=TRUE)

df2<-data.frame(y)

df2$y[df2$y==0]<-NA

df2

输出结果

如果您将上述所有给定的代码片段作为单个程序执行,它会生成以下输出: -

    y

1   2

2  NA

3   1

4   2

5   1

6   2

7   1

8   1

9   2

10  2

11  2

12  1

13  1

14  2

15  2

16  1

17  2

18  1

19 NA

20  1

要将 NA 替换为以前的值,请将以下代码添加到上述代码段中 -

na.locf(df2$y)
输出结果

如果您将上述所有给定的代码片段作为单个程序执行,它会生成以下输出: -

[1] 2 2 1 2 1 2 1 1 2 2 2 1 1 2 2 1 2 1 1 1

以上是 如何用 R 数据框列中的先前值替换零? 的全部内容, 来源链接: utcz.com/z/317242.html

回到顶部