如何替换R数据帧的列中的NA值形成该列的平均值?

在整个世界中,人们学会估算缺失值的第一步就是用相关的均值代替它们。这意味着,如果我们有一列缺少一些值,则将其替换为剩余值的平均值。在R中,我们可以通过使用该列的均值用缺少的值替换该列并传递na.rm = TRUE参数以及该参数来实现。

请看以下数据帧-

示例

set.seed(121)

x<-sample(c(0:2,NA),20,replace=TRUE)

y<-sample(c(0:10,NA),20,replace=TRUE)

z<-sample(c(rnorm(2,1,0.40),NA),20,replace=TRUE)

df<-data.frame(x,y,z)

df

输出结果

x y z

1 NA 1 1.525471

2 NA 10 1.525471

3 NA 0 NA

4 2 1 NA

5 NA 3 NA

6 0 4 1.525471

7 2 9 NA

8 0 5 NA

9 2 7 NA

10 2 6 1.296308

11 2 1 1.296308

12 0 NA 1.525471

13 NA 8 1.296308

14 0 5 NA

15 1 7 1.296308

16 NA 1 1.525471

17 0 1 NA

18 NA 5 1.525471

19 0 8 1.296308

20 1 1 1.296308

用剩余值的平均值替换x列中的NA-

示例

df$x[is.na(df$x)]<-mean(df$x,na.rm=TRUE)

df

输出结果

  x y z

1 0.9230769 1 1.525471

2 0.9230769 10 1.525471

3 0.9230769 0 NA

4 2.0000000 1 NA

5 0.9230769 3 NA

6 0.0000000 4 1.525471

7 2.0000000 9 NA

8 0.0000000 5 NA

9 2.0000000 7 NA

10 2.0000000 6 1.296308

11 2.0000000 1 1.296308

12 0.0000000 NA 1.525471

13 0.9230769 8 1.296308

14 0.0000000 5 NA

15 1.0000000 7 1.296308

16 0.9230769 1 1.525471

17 0.0000000 1 NA

18 0.9230769 5 1.525471

19 0.0000000 8 1.296308

20 1.0000000 1 1.296308

用剩余值的平均值替换y列中的NA-

示例

df$y[is.na(df$y)]<-mean(df$y,na.rm=TRUE)

df

输出结果

      x y z

1 0.9230769 1.000000 1.525471

2 0.9230769 10.000000 1.525471

3 0.9230769 0.000000 NA

4 2.0000000 1.000000 NA

5 0.9230769 3.000000 NA

6 0.0000000 4.000000 1.525471

7 2.0000000 9.000000 NA

8 0.0000000 5.000000 NA

9 2.0000000 7.000000 NA

10 2.0000000 6.000000 1.296308

11 2.0000000 1.000000 1.296308

12 0.0000000 4.368421 1.525471

13 0.9230769 8.000000 1.296308

14 0.0000000 5.000000 NA

15 1.0000000 7.000000 1.296308

16 0.9230769 1.000000 1.525471

17 0.0000000 1.000000 NA

18 0.9230769 5.000000 1.525471

19 0.0000000 8.000000 1.296308

20 1.0000000 1.000000 1.296308

用剩余值的平均值替换z列中的NA

示例

df$z[is.na(df$z)]<-mean(df$z,na.rm=TRUE)

df

输出结果

      x y z

1 0.9230769 1.000000 1.525471

2 0.9230769 10.000000 1.525471

3 0.9230769 0.000000 1.410890

4 2.0000000 1.000000 1.410890

5 0.9230769 3.000000 1.410890

6 0.0000000 4.000000 1.525471

7 2.0000000 9.000000 1.410890

8 0.0000000 5.000000 1.410890

9 2.0000000 7.000000 1.410890

10 2.0000000 6.000000 1.296308

11 2.0000000 1.000000 1.296308

12 0.0000000 4.368421 1.525471

13 0.9230769 8.000000 1.296308

14 0.0000000 5.000000 1.410890

15 1.0000000 7.000000 1.296308

16 0.9230769 1.000000 1.525471

17 0.0000000 1.000000 1.410890

18 0.9230769 5.000000 1.525471

19 0.0000000 8.000000 1.296308

20 1.0000000 1.000000 1.296308

以上是 如何替换R数据帧的列中的NA值形成该列的平均值? 的全部内容, 来源链接: utcz.com/z/316747.html

回到顶部