如何查詢 R 資料框行中的 NA 百分比?


要找出 R 資料框中每行的 NA 百分比,我們可以按照以下步驟執行操作 −

  • 首先,建立一個數據框。

  • 然後,將 rowSums 函式和 ncol 函式與 apply 函式結合使用,找出資料框中每一行的 NA 百分比

示例

建立資料框

讓我們建立一個如下圖所示的資料框 −

v1<-sample(c(NA,rpois(3,2)),25,replace=TRUE)
v2<-sample(c(NA,rpois(3,2)),25,replace=TRUE)
v3<-sample(c(NA,rpois(3,2)),25,replace=TRUE)
v4<-sample(c(NA,rpois(3,2)),25,replace=TRUE)
df<-data.frame(v1,v2,v3,v4)
df

輸出

執行以上指令碼後,將生成如下輸出(由於隨機性,此輸出在你的系統上會因人而異) −

    v1 v2 v3 v4
1    1 2  2  4
2    2 2  2  3
3    2 2 NA  3
4    2 1  4 NA
5    2 2 NA  1
6  NA NA  4 NA
7   2  2  4 NA
8   2  1  4  3
9   2  2  0  4
10  2  2  0 NA
11 NA  2  2 NA
12  2  2  0  4
13  1  2  4  1
14  1 NA  4  3
15  2 NA  4 NA
16  2 NA  4  3
17  2 NA NA  3
18  1  1 NA  4
19 NA  1 NA NA
20 NA  2  0  4
21  1  2  4  1
22  2  2  2  1
23  2  1  4  4
24  1  2  4 NA
25 NA NA NA  3

查詢每一行的 NA 百分比

將 rowSums 函式和 ncol 函式與 apply 函式結合使用,可找出資料框 df 中每一行的 NA 百分比 −

v1<-sample(c(NA,rpois(3,2)),25,replace=TRUE)
v2<-sample(c(NA,rpois(3,2)),25,replace=TRUE)
v3<-sample(c(NA,rpois(3,2)),25,replace=TRUE)
v4<-sample(c(NA,rpois(3,2)),25,replace=TRUE)
df<-data.frame(v1,v2,v3,v4)
df$NA_Percent<-rowSums(apply(is.na(df),2,as.numeric))/ncol(df)
df

輸出

   v1 v2 v3 v4 NA_Percent
1   1  2  2  4 0.00
2   2  2  2  3 0.00
3   2  2 NA  3 0.25
4   2  1  4 NA 0.25
5   2  2 NA  1 0.25
6  NA NA  4 NA 0.75
7   2  2  4 NA 0.25
8   2  1  4  3 0.00
9   2  2  0  4 0.00
10  2  2  0 NA 0.25
11 NA  2  2 NA 0.50
12  2  2  0  4 0.00
13  1  2  4  1 0.00
14  1 NA  4  3 0.25
15  2 NA  4 NA 0.50
16  2 NA  4  3 0.25
17  2 NA NA  3 0.50
18  1  1 NA  4 0.25
19 NA  1 NA NA 0.75
20 NA  2  0  4 0.25
21  1  2  4  1 0.00
22  2  2  2  1 0.00
23  2  1  4  4 0.00
24  1  2  4 NA 0.25
25 NA NA NA  3 0.75

更新於: 12-Nov-2021

450 次觀看

提升 職業生涯

透過完成課程獲得認證

開始
廣告