如何将所有变量相互交叉并在 R 中收集卡方检验值?

How can I cross all variables against each other and gather Chi Square test values in R?

我想将我的数据文件中的所有 40 个分类变量相互设置(= 160 个交叉表)并收集所有卡方检验的 p 值,最好是在一个列表中,以便查看哪个变量最密切相关。

有没有简单的R代码来执行这个请求?

您可以使用 comb 函数查找所有组合和 运行 任意数量的变量相互对照。

作为一个简单的解决方案,如果你有一个名为dtdata.table,并且自变量是result,那么使用下面的代码。

library(data.table)
library(magrittr)
library(dplyr)

chi_dt <- dt %>%
  map(~chisq.test(.x, dt$result)) %>%
  tibble(names = names(.), data = .) %>%
  mutate(stats = map(data, broom::tidy)) %>%
  unnest(stats)  %>% select(-data) %>%
  arrange(p.value, desc(statistic))