如何在R資料框中基於特定列刪除包含缺失值的行?
如果我們想基於特定列刪除包含缺失值的行,那麼我們應該忽略缺失值來選擇該列。這可以透過使用is.na函式來實現。例如,如果我們有一個包含列x、y、z的資料框df,並且每一列都有一些缺失值,那麼可以選擇x列中沒有缺失值的行,方法是df[!is.na(df$x),]。
示例
考慮以下資料框:
x1<−sample(c(NA,1,2,3,4),20,replace=TRUE) x2<−sample(c(NA,5,10),20,replace=TRUE) x3<−sample(c(NA,3,12,21,30),20,replace=TRUE) x4<−sample(c(NA,54,65),20,replace=TRUE) x5<−sample(c(NA,101,125,111),20,replace=TRUE) x6<−sample(c(NA,500),20,replace=TRUE) df<−data.frame(x1,x2,x3,x4,x5,x6) df
輸出
x1 x2 x3 x4 x5 x6 1 4 10 21 54 NA NA 2 4 NA 21 65 NA 500 3 NA 5 NA NA 101 NA 4 3 5 NA NA NA NA 5 1 5 21 65 101 NA 6 NA 10 NA 65 111 500 7 2 NA NA NA NA NA 8 NA 5 NA NA 125 500 9 4 10 NA 54 NA NA 10 1 NA 12 NA 101 NA 11 4 NA 12 NA 101 NA 12 3 5 NA 65 111 NA 13 4 10 30 54 101 500 14 4 5 30 54 111 NA 15 3 5 NA 65 111 NA 16 1 NA 30 65 125 NA 17 1 5 3 65 125 500 18 3 5 NA NA 125 NA 19 NA NA 12 65 101 500 20 2 NA 21 54 111 NA
選擇x1列中不包含缺失值的行:
示例
df[!is.na(df$x1),]
輸出
x1 x2 x3 x4 x5 x6 1 4 10 21 54 NA NA 2 4 NA 21 65 NA 500 4 3 5 NA NA NA NA 5 1 5 21 65 101 NA 7 2 NA NA NA NA NA 9 4 10 NA 54 NA NA 10 1 NA 12 NA 101 NA 11 4 NA 12 NA 101 NA 12 3 5 NA 65 111 NA 13 4 10 30 54 101 500 14 4 5 30 54 111 NA 15 3 5 NA 65 111 NA 16 1 NA 30 65 125 NA 17 1 5 3 65 125 500 18 3 5 NA NA 125 NA 20 2 NA 21 54 111 NA
選擇x2列中不包含缺失值的行:
示例
df[!is.na(df$x2),]
輸出
x1 x2 x3 x4 x5 x6 1 4 10 21 54 NA NA 3 NA 5 NA NA 101 NA 4 3 5 NA NA NA NA 5 1 5 21 65 101 NA 6 NA 10 NA 65 111 500 8 NA 5 NA NA 125 500 9 4 10 NA 54 NA NA 12 3 5 NA 65 111 NA 13 4 10 30 54 101 500 14 4 5 30 54 111 NA 15 3 5 NA 65 111 NA 17 1 5 3 65 125 500 18 3 5 NA NA 125 NA
選擇x3列中不包含缺失值的行:
示例
df[!is.na(df$x3),]
輸出
x1 x2 x3 x4 x5 x6 1 4 10 21 54 NA NA 2 4 NA 21 65 NA 500 5 1 5 21 65 101 NA 10 1 NA 12 NA 101 NA 11 4 NA 12 NA 101 NA 13 4 10 30 54 101 500 14 4 5 30 54 111 NA 16 1 NA 30 65 125 NA 17 1 5 3 65 125 500 19 NA NA 12 65 101 500 20 2 NA 21 54 111 NA
選擇x4列中不包含缺失值的行:
示例
df[!is.na(df$x4),]
輸出
x1 x2 x3 x4 x5 x6 1 4 10 21 54 NA NA 2 4 NA 21 65 NA 500 5 1 5 21 65 101 NA 6 NA 10 NA 65 111 500 9 4 10 NA 54 NA NA 12 3 5 NA 65 111 NA 13 4 10 30 54 101 500 14 4 5 30 54 111 NA 15 3 5 NA 65 111 NA 16 1 NA 30 65 125 NA 17 1 5 3 65 125 500 19 NA NA 12 65 101 500 20 2 NA 21 54 111 NA
選擇x5列中不包含缺失值的行:
示例
df[!is.na(df$x5),]
輸出
x1 x2 x3 x4 x5 x6 3 NA 5 NA NA 101 NA 5 1 5 21 65 101 NA 6 NA 10 NA 65 111 500 8 NA 5 NA NA 125 500 10 1 NA 12 NA 101 NA 11 4 NA 12 NA 101 NA 12 3 5 NA 65 111 NA 13 4 10 30 54 101 500 14 4 5 30 54 111 NA 15 3 5 NA 65 111 NA 16 1 NA 30 65 125 NA 17 1 5 3 65 125 500 18 3 5 NA NA 125 NA 19 NA NA 12 65 101 500 20 2 NA 21 54 111 NA
選擇x6列中不包含缺失值的行:
示例
df[!is.na(df$x6),]
輸出
x1 x2 x3 x4 x5 x6 2 4 NA 21 65 NA 500 6 NA 10 NA 65 111 500 8 NA 5 NA NA 125 500 13 4 10 30 54 101 500 17 1 5 3 65 125 500 19 NA NA 12 65 101 500
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP