na.omit函数将删除数据框中的所有缺失值,如果将complete.cases应用于整个数据框,它们也会执行相同的操作。两者之间的主要区别是complete.cases可以应用于某些列或行。查看以下示例以了解不同之处。
请看以下数据帧:
> set.seed(2584) > x<-sample(c(NA,2,8,6,5,4),20,replace=TRUE) > y<-sample(c(NA,5,25),20,replace=TRUE) > df<-data.frame(x,y) > df
输出结果
x y 1 NA 25 2 5 5 3 8 NA 4 6 5 5 4 NA 6 4 5 7 6 NA 8 4 NA 9 4 5 10 8 5 11 8 5 12 6 25 13 5 25 14 6 5 15 5 5 16 4 5 17 NA 25 18 8 NA 19 4 NA 20 8 5
将na.omit应用于df:
> na.omit(df)
输出结果
x y 2 5 5 4 6 5 6 4 5 9 4 5 10 8 5 11 8 5 12 6 25 13 5 25 14 6 5 15 5 5 16 4 5 20 8 5
将complete.cases应用于df:
> df[complete.cases(df),]
输出结果
x y 2 5 5 4 6 5 6 4 5 9 4 5 10 8 5 11 8 5 12 6 25 13 5 25 14 6 5 15 5 5 16 4 5 20 8 5
将complete.cases应用于df仅删除第1列中的缺失值:
> df[complete.cases(df[,1]),]
输出结果
x y 2 5 5 3 8 NA 4 6 5 5 4 NA 6 4 5 7 6 NA 8 4 NA 9 4 5 10 8 5 11 8 5 12 6 25 13 5 25 14 6 5 15 5 5 16 4 5 18 8 NA 19 4 NA 20 8 5
将complete.cases应用于df仅删除第2列中的缺失值:
> df[complete.cases(df[,2]),]
输出结果
x y 1 NA 25 2 5 5 4 6 5 6 4 5 9 4 5 10 8 5 11 8 5 12 6 25 13 5 25 14 6 5 15 5 5 16 4 5 17 NA 25 20 8 5