R 中的 na.omit 和 complete.cases 有什么区别?


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

更新日期: 2020 年 11 月 21 日

737 次浏览

开启您的 事业

完成课程即可获得认证

开始
广告
© . All rights reserved.