【发布时间】:2019-03-25 00:54:57
【问题描述】:
我想使用 tidyverse 的元素按组获取卡方输出矩阵(例如,标准化残差、期望值)。使用 mtcars 数据集,这是我开始的地方:
mtcars %>%
dplyr::select(vs, am) %>%
table() %>%
chisq.test(.)
产生卡方检验统计量。比如为了得到标准化的残差,我唯一成功的代码是这样的:
mtcars %>%
dplyr::select(vs, am) %>%
table() %>%
chisq.test(.) -> chi.out
chi.out$stdres
vs am Freq
1 0 0 0.9523038
2 1 0 -0.9523038
3 0 1 -0.9523038
4 1 1 0.9523038
理想情况下,我希望将观察值和标准化残差转换为数据框格式。像这样的:
cbind(as.data.frame(chi.out$observed),as.data.frame(chi.out$stdres))
vs am Freq vs am Freq
1 0 0 12 0 0 0.9523038
2 1 0 7 1 0 -0.9523038
3 0 1 6 0 1 -0.9523038
4 1 1 7 1 1 0.9523038
最后,我想按组执行此操作,例如在 mtcars 数据集中的 cyl 列上。似乎 dplyr 和某些带有 map_dfr 或 map_dfc 的 purrr 地图版本可以解决问题,但我无法将它们完全结合在一起。提前致谢。
【问题讨论】:
-
“我想按组获取卡方输出矩阵” 哪个组?您没有按任何变量分组。您可以为您按
cyl分组的情况添加您的预期输出吗? -
应该提供一个输出应该是什么样子的例子。请参阅下面 Humpelstielzchen 的回复/解决方案。