如何在 R 資料框中刪除所有列都包含編碼缺失值的行?
有時缺失值會被編碼,如果我們在不替換這些缺失值的情況下進行分析,分析結果就很難解釋,尤其對於初次閱讀的人來說更是難以理解。
因此,我們可能需要刪除包含編碼缺失值的行。為此,我們可以用 NA 替換編碼的缺失值,然後刪除包含 NA 的行,如下例所示。
示例 1
以下程式碼片段建立一個數據框,如果缺失值被編碼為 1:
x1<-rpois(20,1) x2<-rpois(20,1) df1<-data.frame(x1,x2) df1
建立以下資料框:
x1 x2 1 1 0 2 1 2 3 1 3 4 1 1 5 0 1 6 0 1 7 1 0 8 0 1 9 2 1 10 1 2 11 0 3 12 1 0 13 1 2 14 2 2 15 0 0 16 2 3 17 1 1 18 2 0 19 0 0 20 1 1
要在 R 資料框中刪除所有列都包含編碼缺失值的行,請將以下程式碼新增到上述程式碼片段中:
x1<-rpois(20,1) x2<-rpois(20,1) df1<-data.frame(x1,x2) df1[df1==1]<-NA df1
輸出
如果您將上述所有程式碼片段作為一個程式執行,它將生成以下輸出:
x1 x2 1 NA 0 2 NA 2 3 NA 3 4 NA NA 5 0 NA 6 0 NA 7 NA 0 8 0 NA 9 2 NA 10 NA 2 11 0 3 12 NA 0 13 NA 2 14 2 2 15 0 0 16 2 3 17 NA NA 18 2 0 19 0 0 20 NA NA
要在 R 資料框中刪除所有列都包含編碼缺失值的行,請將以下程式碼新增到上述程式碼片段中:
df1[rowSums(is.na(df1))<ncol(df1),]
輸出
如果您將上述所有程式碼片段作為一個程式執行,它將生成以下輸出:
x1 x2 1 NA 0 2 NA 2 3 NA 3 5 0 NA 6 0 NA 7 NA 0 8 0 NA 9 2 NA 10 NA 2 11 0 3 12 NA 0 13 NA 2 14 2 2 15 0 0 16 2 3 18 2 0 19 0 0
示例 2
以下程式碼片段建立一個數據框,如果缺失值被編碼為 99:
y1<-sample(c(1,99),20,replace=TRUE) y2<-sample(c(5,99),20,replace=TRUE) df2<-data.frame(y1,y2) df2
建立以下資料框:
y1 y2 1 99 5 2 99 5 3 99 5 4 1 99 5 1 99 6 1 5 7 1 99 8 99 99 9 99 99 10 99 99 11 99 99 12 99 5 13 1 99 14 99 5 15 99 5 16 99 99 17 99 5 18 99 99 19 99 99 20 99 5
要在 R 資料框中刪除所有列都包含編碼缺失值的行,請將以下程式碼新增到上述程式碼片段中:
y1<-sample(c(1,99),20,replace=TRUE) y2<-sample(c(5,99),20,replace=TRUE) df2<-data.frame(y1,y2) df2[df2==99]<-NA df2
輸出
如果您將上述所有程式碼片段作為一個程式執行,它將生成以下輸出:
y1 y2 1 NA 5 2 NA 5 3 NA 5 4 1 NA 5 1 NA 6 1 5 7 1 NA 8 NA NA 9 NA NA 10 NA NA 11 NA NA 12 NA 5 13 1 NA 14 NA 5 15 NA 5 16 NA NA 17 NA 5 18 NA NA 19 NA NA 20 NA 5
要在 R 資料框中刪除所有列都包含編碼缺失值的行,請將以下程式碼新增到上述程式碼片段中:
df2[rowSums(is.na(df2))<ncol(df2),]
輸出
如果您將上述所有程式碼片段作為一個程式執行,它將生成以下輸出:
y1 y2 1 NA 5 2 NA 5 3 NA 5 4 1 NA 5 1 NA 6 1 5 7 1 NA 12 NA 5 13 1 NA 14 NA 5 15 NA 5 17 NA 5 20 NA 5
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP