我有一个数据框,其中一些列缺少值。有没有办法(使用dplyr)有效地计算缺失的每列的百分比,即NA。想要像colSum等价物。所以我不必单独计算每个列的百分比?
答案 0 :(得分:13)
首先,我为您创建了一个测试数据:
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
然后您可以使用colMeans(is.na(x))
:
colMeans(is.na(x))
# a b
# 0.50 0.25
答案 1 :(得分:12)
我们可以使用summarise_each
library(dplyr)
x %>%
summarise_each(funs(100*mean(is.na(.))))
答案 2 :(得分:3)
对于这类事情,purrr::map
非常简洁:
x %>% map(~ mean(is.na(.)))