如何在 R 資料框中檢查哪個值為 NA?
要檢查 R 資料框中哪個值為 NA,我們可以使用 apply 函式以及 is.na 函式。
例如,如果我們有一個名為 df 的資料框包含一些 NA 值,那麼我們可以使用下面提到的命令來檢查哪個值為 NA:
apply(df,2, function(x) is.na(x))
這將以邏輯形式(TRUE 和 FALSE)返回資料框。檢視下面的示例以瞭解其工作原理。
示例 1
以下程式碼片段建立了一個示例資料框:
x1<-sample(c(NA,round(rnorm(3),2)),20,replace=TRUE) x2<-sample(c(NA,round(rnorm(3,10,2),2)),20,replace=TRUE) x3<-sample(c(NA,round(rnorm(3,25,3.2),2)),20,replace=TRUE) df1<-data.frame(x1,x2,x3) df1
建立了以下資料框
x1 x2 x3 1 -0.02 7.82 31.24 2 -0.50 9.21 31.24 3 NA NA 21.65 4 -0.02 7.82 NA 5 NA NA 31.24 6 NA 7.82 29.91 7 -0.02 7.82 29.91 8 NA NA 29.91 9 -0.02 7.82 31.24 10 1.51 NA NA 11 -0.02 9.21 29.91 12 NA NA 31.24 13 -0.50 9.21 31.24 14 -0.02 NA 29.91 15 1.51 9.21 21.65 16 -0.50 NA 21.65 17 1.51 NA 31.24 18 -0.50 9.21 NA 19 NA 9.21 21.65 20 1.51 10.97 NA
要在上面建立的資料框上檢查 df1 中哪些值為 NA,請將以下程式碼新增到上述程式碼片段中:
x1<-sample(c(NA,round(rnorm(3),2)),20,replace=TRUE) x2<-sample(c(NA,round(rnorm(3,10,2),2)),20,replace=TRUE) x3<-sample(c(NA,round(rnorm(3,25,3.2),2)),20,replace=TRUE) df1<-data.frame(x1,x2,x3) apply(df1,2, function(x) is.na(x))
輸出
如果您將所有上述給定的程式碼片段作為單個程式執行,它將生成以下輸出:
x1 x2 x3 [1,] FALSE FALSE FALSE [2,] FALSE FALSE FALSE [3,] TRUE TRUE FALSE [4,] FALSE FALSE TRUE [5,] TRUE TRUE FALSE [6,] TRUE FALSE FALSE [7,] FALSE FALSE FALSE [8,] TRUE TRUE FALSE [9,] FALSE FALSE FALSE [10,] FALSE TRUE TRUE [11,] FALSE FALSE FALSE [12,] TRUE TRUE FALSE [13,] FALSE FALSE FALSE [14,] FALSE TRUE FALSE [15,] FALSE FALSE FALSE [16,] FALSE TRUE FALSE [17,] FALSE TRUE FALSE [18,] FALSE FALSE TRUE [19,] TRUE FALSE FALSE [20,] FALSE FALSE TRUE
示例 2
以下程式碼片段建立了一個示例資料框:
y1<-sample(c(NA,rpois(3,1)),20,replace=TRUE) y2<-sample(c(NA,rpois(2,5)),20,replace=TRUE) y3<-sample(c(NA,rpois(2,2)),20,replace=TRUE) df2<-data.frame(y1,y2,y3) df2
建立了以下資料框
y1 y2 y3 1 0 NA 4 2 1 6 4 3 1 NA 4 4 1 NA 4 5 NA NA NA 6 NA 6 4 7 0 6 4 8 1 6 4 9 0 NA 4 10 0 9 NA 11 1 NA NA 12 1 NA 4 13 0 9 NA 14 1 6 4 15 0 9 4 16 0 6 4 17 0 9 4 18 1 6 4 19 0 9 NA 20 1 NA NA
要在上面建立的資料框上檢查 df2 中哪些值為 NA,請將以下程式碼新增到上述程式碼片段中:
y1<-sample(c(NA,rpois(3,1)),20,replace=TRUE) y2<-sample(c(NA,rpois(2,5)),20,replace=TRUE) y3<-sample(c(NA,rpois(2,2)),20,replace=TRUE) df2<-data.frame(y1,y2,y3) apply(df2,2, function(x) is.na(x))
輸出
如果您將所有上述給定的程式碼片段作為單個程式執行,它將生成以下輸出:
y1 y2 y3 [1,] FALSE TRUE FALSE [2,] FALSE FALSE FALSE [3,] FALSE TRUE FALSE [4,] FALSE TRUE FALSE [5,] TRUE TRUE TRUE [6,] TRUE FALSE FALSE [7,] FALSE FALSE FALSE [8,] FALSE FALSE FALSE [9,] FALSE TRUE FALSE [10,] FALSE FALSE TRUE [11,] FALSE TRUE TRUE [12,] FALSE TRUE FALSE [13,] FALSE FALSE TRUE [14,] FALSE FALSE FALSE [15,] FALSE FALSE FALSE [16,] FALSE FALSE FALSE [17,] FALSE FALSE FALSE [18,] FALSE FALSE FALSE [19,] FALSE FALSE TRUE [20,] FALSE TRUE TRUE
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP