如何用R数据帧列中的先前值填充NA值?
要用下一个和上一个值填充NA值,我们可以使用na.locffromLast = TRUE的zoo包功能。这是一列的情况,如下所示-
x0
NA
NA
1
1
NA
0
1
用下一个和上一个值填充NA值后的输出为-
x0
0
0
1
1
1
0
1
考虑以下数据帧-
示例
x1<-sample(c(NA,rpois(2,1)),20,replace=TRUE)输出结果x2<-sample(c(NA,rpois(2,5)),20,replace=TRUE)
df1<-data.frame(x1,x2)
df1
x1 x21 0 1
2 NA 6
3 NA NA
4 1 6
5 1 NA
6 NA NA
7 0 6
8 1 1
9 NA 6
10 1 NA
11 1 6
12 NA NA
13 NA 6
14 1 NA
15 1 1
16 NA 6
17 NA 6
18 NA NA
19 1 NA
20 1 6
加载Zoo软件包并用df1中的先前值替换NA值-
示例
library(zoo)输出结果na.locf(na.locf(df1),fromLast=TRUE)
x1 x21 0 1
2 0 6
3 0 6
4 1 6
5 1 6
6 1 6
7 0 6
8 1 1
9 1 6
10 1 6
11 1 6
12 1 6
13 1 6
14 1 6
15 1 1
16 1 6
17 1 6
18 1 6
19 1 6
20 1 6
示例
y1<-sample(c(NA,rnorm(2)),20,replace=TRUE)输出结果y2<-sample(c(NA,rnorm(2)),20,replace=TRUE)
df2<-data.frame(y1,y2)
df2
y1 y21 -0.4569616 NA
2 NA -1.014162
3 NA -1.014162
4 -0.4569616 -1.014162
5 -0.4569616 NA
6 0.2828478 1.282601
7 -0.4569616 NA
8 0.2828478 NA
9 0.2828478 -1.014162
10 NA 1.282601
11 0.2828478 -1.014162
12 -0.4569616 1.282601
13 0.2828478 -1.014162
14 NA -1.014162
15 0.2828478 -1.014162
16 NA NA
17 -0.4569616 NA
18 -0.4569616 -1.014162
19 0.2828478 -1.014162
20 NA -1.014162
用df2中的先前值替换NA值-
示例
na.locf(na.locf(df2),fromLast=TRUE)输出结果
y1 y22 -0.4569616 -1.014162
3 -0.4569616 -1.014162
4 -0.4569616 -1.014162
5 -0.4569616 -1.014162
6 0.2828478 1.282601
7 -0.4569616 1.282601
8 0.2828478 1.282601
9 0.2828478 -1.014162
10 0.2828478 1.282601
11 0.2828478 -1.014162
12 -0.4569616 1.282601
13 0.2828478 -1.014162
14 0.2828478 -1.014162
15 0.2828478 -1.014162
16 0.2828478 -1.014162
17 -0.4569616 -1.014162
18 -0.4569616 -1.014162
19 0.2828478 -1.014162
20 0.2828478 -1.014162
以上是 如何用R数据帧列中的先前值填充NA值? 的全部内容, 来源链接: utcz.com/z/357955.html