r - R chisq.test - 通过df自动化,每个变量都有,df有数据,不是计数,宽格式
问题描述
我有一个看起来像这样的数据框:
gend domh nat le re lf rf ad ab imp
1 f R fr y y n y y y Y
2 f R fr n n y n n n N
3 f R fr y y Y
4 f R fr n n n n n n N
5 m L fr y n n y y y Y
6 m R fr y y y y y y Y
7 m R fr y y y y y y Y
8 f L fr y y n n n y N
9 f R fr n n n n n y N
10 m R fr y y y y y y Y
11 f R fr y y n n y y Y
12 m R pfr n N
13 f R pfr y y n n n y N
14 m R pfr y n n n y y N
15 f R pfr y n y n y y Y
16 f R pfr y n y y y y Y
17 m L pfr n n y y y y Y
18 m R pfr y y y y y y Y
19 m R pfr y n y y y y Y
20 f R pfr y y y y y y Y
21 f R pfr n N
22 f R pfr y y y y y y Y
我希望每个变量都与每个变量“卡方”,即性别与 domh、nat、le 等,然后 domh 与其他每个变量等,等等。我知道如何手动做到这一点:
>chisq.test(df$gend, df$domh, simulate.p.value = T, B = 1000000)
但必须有一种方法可以自动执行此操作。我只需要测试中的 p 值(和对名称)。有人可以帮忙吗?
解决方案
包中的函数似乎提供了一种方法,因为您只需要 p 值colpair_map
。corrr
(当然,循环列是明显的选择)。
# you first need a function that just returns p-value
# to be used in colpair_map. The <htest> object returned
# by chisq.test doesn't work with colpair_map
chisq_pval <- function(...) {
chisq.test(...)$p.value
}
# the chisq_pval function defined above can now be used directly
# in colpair_map, along with the additional arguments for chisq.test
corrr::colpair_map(df, chisq_pval, simulate.p.value = T, B = 1000000)
推荐阅读
- wcf - WCF 不支持可选参数
- python - 我正在尝试在 python 中使用 HTML img 标签发送邮件,但出现以下错误
- javascript - BIRT eclipse - 删除列中的重复值 - ROWSPAN
- mysql - MySQL Query 不适用于所有测试用例
- reactjs - react native 中架构 armv7 的 1 个重复符号
- google-chrome - 无法向公众发布 chrome 扩展
- scope - 递归调用的变量是自由的还是绑定的?
- visual-studio-code - VSCode - 是否有任何选项可以替换 vs 代码中单引号内的任何形式的文本?
- python - 在 jupyter notebook 中以原始分辨率显示图像
- python - 生成一个总和为 1 的随机百分比列