如何使用列的平均值填充 R 数据框中的缺失值?
处理缺失值是数据分析的最初步骤之一,也是最困难的步骤之一,因为如果不使用适当的方法填充缺失值,则整个分析的结果可能会毫无意义。因此,我们必须非常小心地处理缺失值。出于学习目的,人们大多使用平均值来填充缺失值,但也可以根据数据的特性使用许多其他值。要使用列的平均值填充缺失值,可以使用 zoo 包的 na.aggregate 函数。
示例
考虑以下数据框:
x1<-c(1:5,NA,17:30) x2<-c(1:2,NA,4:20) x3<-sample(c(1,5,8,NA,6,3),20,replace=TRUE) x4<-sample(c(45,75,68,NA,36,43),20,replace=TRUE) x5<-rep(c(23,45,55,78,NA),times=4) df<-data.frame(x1,x2,x3,x4,x5) df
输出
x1 x2 x3 x4 x5 1 1 1 6 36 23 2 2 2 5 36 45 3 3 NA 1 68 55 4 4 4 1 43 78 5 5 5 3 45 NA 6 NA 6 3 75 23 7 17 7 5 68 45 8 18 8 6 43 55 9 19 9 NA 75 78 10 20 10 8 75 NA 11 21 11 3 43 23 12 22 12 1 68 45 13 23 13 8 45 55 14 24 14 5 36 78 15 25 15 5 36 NA 16 26 16 5 75 23 17 27 17 5 75 45 18 28 18 6 43 55 19 29 19 8 NA 78 20 30 20 6 75 NA
示例
library(zoo) na.aggregate(df)
输出
x1 x2 x3 x4 x5 1 1.00000 1.00000 6.000000 36.00000 23.00 2 2.00000 2.00000 5.000000 36.00000 45.00 3 3.00000 10.89474 1.000000 68.00000 55.00 4 4.00000 4.00000 1.000000 43.00000 78.00 5 5.00000 5.00000 3.000000 45.00000 50.25 6 18.10526 6.00000 3.000000 75.00000 23.00 7 17.00000 7.00000 5.000000 68.00000 45.00 8 18.00000 8.00000 6.000000 43.00000 55.00 9 19.00000 9.00000 4.736842 75.00000 78.00 10 20.00000 10.00000 8.000000 75.00000 50.25 11 21.00000 11.00000 3.000000 43.00000 23.00 12 22.00000 12.00000 1.000000 68.00000 45.00 13 23.00000 13.00000 8.000000 45.00000 55.00 14 24.00000 14.00000 5.000000 36.00000 78.00 15 25.00000 15.00000 5.000000 36.00000 50.25 16 26.00000 16.00000 5.000000 75.00000 23.00 17 27.00000 17.00000 5.000000 75.00000 45.00 18 28.00000 18.00000 6.000000 43.00000 55.00 19 29.00000 19.00000 8.000000 55.78947 78.00 20 30.00000 20.00000 6.000000 75.00000 50.25
让我们来看另一个例子:
示例
var1 <-sample(c(1,2,NA),20,replace=TRUE) var2 <-sample(c(2,NA),20,replace=TRUE) var3 <-c(rnorm(10),rep(NA,10)) var_data <-data.frame(var1,var2,var3) var_data
输出
var1 var2 var3 1 1 NA 0.15883062 2 NA 2 0.65976414 3 NA 2 2.22051966 4 NA NA -1.18394507 5 1 NA -0.07395583 6 NA 2 -0.41635467 7 NA NA -0.19148234 8 NA NA 0.06954478 9 1 2 1.15534832 10 2 2 0.59495735 11 2 NA NA 12 1 2 NA 13 NA 2 NA 14 NA NA NA 15 1 NA NA 16 1 NA NA 17 1 2 NA 18 NA 2 NA 19 1 2 NA 20 2 NA NA
示例
na.aggregate(var_data)
输出
var1 var2 var3 1 1.000000 2 0.15883062 2 1.272727 2 0.65976414 3 1.272727 2 2.22051966 4 1.272727 2 -1.18394507 5 1.000000 2 -0.07395583 6 1.272727 2 -0.41635467 7 1.272727 2 -0.19148234 8 1.272727 2 0.06954478 9 1.000000 2 1.15534832 10 2.000000 2 0.59495735 11 2.000000 2 0.29932269 12 1.000000 2 0.29932269 13 1.272727 2 0.29932269 14 1.272727 2 0.29932269 15 1.000000 2 0.29932269 16 1.000000 2 0.29932269 17 1.000000 2 0.29932269 18 1.272727 2 0.29932269 19 1.000000 2 0.29932269 20 2.000000 2 0.29932269
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP