如何在 R 中刪除所有包含 NA 的行?


要刪除所有包含 NA 的行,我們可以使用 na.omit() 函式。例如,如果我們有一個名為 df 的資料框,其中包含一些 NA 值,那麼我們可以使用命令 na.omit(df) 刪除所有包含至少一個 NA 的行。

這意味著如果資料框中有多列,則包含任何一個 NA 的行都將被刪除。檢視下面的示例以瞭解其工作原理。

示例 1

考慮以下資料框:

x1<-sample(c(NA,5,2),20,replace=TRUE)
x2<-sample(c(NA,10,100),20,replace=TRUE)
df1<-data.frame(x1,x2)
df1

建立以下資料框

   x1   x2
1   5  10
2  NA  10
3   5 100
4  NA  NA
5   5 100
6   2  NA
7   2  10
8   5 100
9  NA  10
10  2  10
11  5  NA
12 NA 100
13 NA  NA
14  2  NA
15 NA  10
16  5 100
17  2  NA
18 NA  NA
19 NA  10
20 NA  NA

要從上面建立的資料框的 df1 中刪除包含至少一個 NA 的行,請將以下程式碼新增到上述程式碼段中:

x1<-sample(c(NA,5,2),20,replace=TRUE)
x2<-sample(c(NA,10,100),20,replace=TRUE)
df1<-data.frame(x1,x2)
na.omit(df1)

輸出

如果您將以上所有程式碼段作為一個程式執行,則會生成以下輸出:

  x1  x2
1  5  10
3  5 100
5  5 100
7  2  10
8  5 100
10 2  10
16 5 100

示例 2

以下程式碼段建立了一個示例資料框:

y1<-sample(c(NA,rnorm(2)),20,replace=TRUE)
y2<-sample(c(NA,rnorm(2)),20,replace=TRUE)
y3<-sample(c(NA,rnorm(2)),20,replace=TRUE)
df2<-data.frame(y1,y2,y3)
df2

建立以下資料框

         y1           y2           y3
1        NA    -1.779384           NA
2        NA    -1.779384    0.7194928
3 0.5985389     0.389119    1.2007584
4        NA           NA           NA
5 1.2319630    -1.779384    1.2007584
6        NA           NA           NA
7 0.5985389     0.389119    1.2007584
8 0.5985389           NA    1.2007584
9 0.5985389     0.389119    0.7194928
10       NA           NA    0.7194928
11       NA           NA           NA 
12 1.2319630          NA    0.7194928
13 0.5985389          NA    0.7194928
14 1.2319630          NA    0.7194928
15 1.2319630   -1.779384    0.7194928
16 0.5985389   -1.779384    1.2007584
17 0.5985389   -1.779384    0.7194928
18 0.5985389    0.389119    1.2007584
19       NA    -1.779384           NA
20 0.5985389    0.389119    1.2007584

要從上面建立的資料框的 df2 中刪除包含至少一個 NA 的行,請將以下程式碼新增到上述程式碼段中:

y1<-sample(c(NA,rnorm(2)),20,replace=TRUE)
y2<-sample(c(NA,rnorm(2)),20,replace=TRUE)
y3<-sample(c(NA,rnorm(2)),20,replace=TRUE)
df2<-data.frame(y1,y2,y3)
na.omit(df2)

輸出

如果您將以上所有程式碼段作為一個程式執行,則會生成以下輸出:

         y1        y2          y3
3 0.5985389   0.389119  1.2007584
5 1.2319630 -1.779384   1.2007584
7 0.5985389   0.389119  1.2007584
9 0.5985389   0.389119  0.7194928
15 1.2319630 -1.779384  0.7194928
16 0.5985389 -1.779384  1.2007584
17 0.5985389 -1.779384  0.7194928
18 0.5985389  0.389119  1.2007584
20 0.5985389  0.389119  1.2007584

更新時間: 2023年9月2日

75K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.