如何在 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

更新於:2021年11月11日

瀏覽量:300

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.