【发布时间】:2017-04-15 21:45:19
【问题描述】:
我有一个带有因子变量的数据框和带有几个 NA 的列,如图所示。
var col1 col2 col3
C 1 NA 1
A NA 1 1
C NA NA NA
A 1 NA 1
B NA 1 1
A 1 1 1
B 1 NA 1
B 1 1 1
C NA NA 1
B NA 1 1
我正在寻找一种方法来对变量进行分组并获取每列缺失值的比例,按“var”中的级别分组。输出应如下所示:
var col1 col2 col3
A 0.33 0.33 0
B 0.5 0.25 0
C 0.66 1.00 0.33
任何方法都可以,并且可以使用不同的方法,但最好使用简单的 dplyr 方法。谢谢!
编辑:我正在寻找一种方法,该方法允许我一次对多列执行此操作并返回类似于我上面显示的数据框。
假设我的数据被命名为“df”,我想一次性获取所有列的缺失比例无需再次手动输入名称。
以下代码不起作用,但它是我想要实现的总体思路。也许一个函数会有所帮助,但我不确定我会如何处理它。
df %>% group_by(var) %>% summarise(names(df[,-1]) = sum(is.na(names(df[,-1])))/n())
【问题讨论】: