R chisq.测试-自动化通过一个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值(和pair-name)。有人能帮忙吗?

函数colpair_map来自corrr包似乎提供了一种方法,因为您只需要p值。(当然,循环遍历列是另一种明显的选择)。

# 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)

相关内容

  • 没有找到相关文章

最新更新