如何将所有变量相互交叉并在 R 中收集卡方检验值?
How can I cross all variables against each other and gather Chi Square test values in R?
我想将我的数据文件中的所有 40 个分类变量相互设置(= 160 个交叉表)并收集所有卡方检验的 p 值,最好是在一个列表中,以便查看哪个变量最密切相关。
有没有简单的R代码来执行这个请求?
您可以使用 comb
函数查找所有组合和 运行 任意数量的变量相互对照。
作为一个简单的解决方案,如果你有一个名为dt
的data.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))
我想将我的数据文件中的所有 40 个分类变量相互设置(= 160 个交叉表)并收集所有卡方检验的 p 值,最好是在一个列表中,以便查看哪个变量最密切相关。
有没有简单的R代码来执行这个请求?
您可以使用 comb
函数查找所有组合和 运行 任意数量的变量相互对照。
作为一个简单的解决方案,如果你有一个名为dt
的data.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))