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.