如何查找 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 次观看

提升 职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.