如何在 R 中選擇沒有缺失值的列?
有兩種簡單的方法可以選擇 R 資料框中沒有缺失值的列,第一種方法得到一個向量,另一種方法返回一個矩陣。例如,如果我們有一個名為 df 的資料框,則第一種方法可以用作 df[,colSums(is.na(df))==0],第二種方法將用作 t(na.omit(t(df)))。
示例
考慮以下資料框 -
df1<-data.frame(x1=sample(c(NA,5),20,replace=TRUE),x2=rpois(20,5)) df1
輸出
x1 x2 1 NA 10 2 5 3 3 NA 6 4 NA 9 5 NA 2 6 5 1 7 NA 3 8 NA 4 9 NA 4 10 5 0 11 NA 4 12 NA 1 13 5 7 14 5 6 15 NA 4 16 5 7 17 5 8 18 NA 1 19 NA 5 20 5 5
使用第一種方法選擇 df1 中不包含缺失值的列 -
示例
df1[ , colSums(is.na(df1)) == 0]
輸出
[1] 10 3 6 9 2 1 3 4 4 0 4 1 7 6 4 7 8 1 5 5
使用第二種方法選擇 df1 中不包含缺失值的列 -
示例
t(na.omit(t(df1)))
輸出
x2 [1,] 10 [2,] 3 [3,] 6 [4,] 9 [5,] 2 [6,] 1 [7,] 3 [8,] 4 [9,] 4 [10,] 0 [11,] 4 [12,] 1 [13,] 7 [14,] 6 [15,] 4 [16,] 7 [17,] 8 [18,] 1 [19,] 5 [20,] 5
attr(,"na.action") x1 1 attr(,"class") [1] "omit"
示例
df2<-data.frame(y1=sample(c(NA,2),20,replace=TRUE),y2=rnorm(20,5,0.23)) df2
輸出
y1 y2 1 NA 4.926885 2 NA 4.880143 3 2 4.999657 4 2 5.101575 5 NA 4.778465 6 NA 4.534625 7 NA 5.341219 8 2 5.462156 9 2 4.553130 10 NA 5.282899 11 NA 4.884406 12 NA 4.960496 13 2 4.913396 14 NA 4.780874 15 NA 5.222774 16 2 5.007299 17 NA 4.900481 18 2 4.839670 19 2 5.107357 20 NA 4.874243
使用第二種方法選擇 df2 中不包含缺失值的列 -
示例
t(na.omit(t(df2)))
輸出
y2 [1,] 4.926885 [2,] 4.880143 [3,] 4.999657 [4,] 5.101575 [5,] 4.778465 [6,] 4.534625 [7,] 5.341219 [8,] 5.462156 [9,] 4.553130 [10,] 5.282899 [11,] 4.884406 [12,] 4.960496 [13,] 4.913396 [14,] 4.780874 [15,] 5.222774 [16,] 5.007299 [17,] 4.900481 [18,] 4.839670 [19,] 5.107357 [20,] 4.874243
attr(,"na.action") y1 1 attr(,"class") [1] "omit"
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP