如何用 R 数据框列中的先前值替换零?
要用 R 数据框列中的先前值替换零,我们可以使用na.locfzoo 包的函数,但要应用此功能,我们首先需要用 NA 替换零值。
例如,如果我们有一个名为 df 的数据框,其中包含一个名为 Rate 的列,那么我们可以使用以下命令使用以下给定的命令将 Rate 中的 0 值替换为先前的值 -
df$Rate[df$Rate==0]<-NAna.locf(df$Rate)
示例 1
以下代码段创建了一个示例数据框 -
x<-sample(0:3,20,replace=TRUE)df1<-data.frame(x)
df1
创建以下数据框 -
x1 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
如果您将上述所有给定的代码片段作为单个程序执行,它会生成以下输出: -
x1 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
创建以下数据框 -
y1 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
如果您将上述所有给定的代码片段作为单个程序执行,它会生成以下输出: -
y1 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