我想对summary.default()
data.frame 中的变量进行数字汇总(在 base 包中)并在 broom 包中使用 tidy() ,但这不知何故失败了。
在这个例子中,我创建了一个 data.frame:
df <- data.frame(group = c(rep('M', 6), 'F', 'F', 'M', 'M', 'F', 'F'),
val = c(6, 5, NA, NA, 6, 13, NA, 8, 10, 7, 14, 6))
我加载plyr
(1.8.3)、dplyr
(0.4.2)和broom
(0.3.7)(按此顺序)。仅供参考在 64 位 Windows 上运行 R 3.2.2,但我在 Unix 上遇到与 3.2.1 类似的问题。
我认为这会给我一个理想的输出:
df %>% group_by(group) %>% do(tidy(summary(.$val)))
但我收到一条错误消息:
Error: corrupt data frame at index 1
我可以使用如下所示的plyr
方法获得理想的结果:broom::tidy
df %>% group_by(group) %>% do(summ = summary(.$val)) %>%
daply(.(group), function(x) tidy(x$summ[[1]]))
group minimum q1 median mean q3 maximum <NA>
F 6 7 8 9.333 11 14 1
M 5 6 6.5 7.833 9.25 13 2
但很明显,我问这个问题是为了解决在上述函数中使用tidy()
(summaryDefault)问题的根源。do()