如何在 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
输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

    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

猜你喜欢