使用dplyr计算每列中NA'S的百分比

MP6*_*P61 3 r dplyr

我有一个数据框,其中一些列缺少值.有没有办法(使用dplyr)有效地计算缺失的每列的百分比,即NA.想要像colSum等价物.所以我不必单独计算每个列的百分比?

Gav*_*vin 14

首先,我为您创建了一个测试数据:

a<- c(1,NA,NA,4)
b<- c(NA,2,3,4)
x<- data.frame(a,b)
x
#    a  b
# 1  1 NA
# 2 NA  2
# 3 NA  3
# 4  4  4
Run Code Online (Sandbox Code Playgroud)

然后你可以使用colMeans(is.na(x)):

colMeans(is.na(x))
#    a    b 
# 0.50 0.25 
Run Code Online (Sandbox Code Playgroud)

  • 感谢Ben Bolker的评论. (2认同)

akr*_*run 12

我们可以用 summarise_each

 library(dplyr)
 x %>% 
   summarise_each(funs(100*mean(is.na(.))))
Run Code Online (Sandbox Code Playgroud)


小智 8

purrr::map喜欢这种事情的简洁:

x %>% map(~ mean(is.na(.)))