tidyverse:Chi Square适用于所有列的组合
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tidyverse:Chi Square适用于所有列的组合相关的知识,希望对你有一定的参考价值。
我使用以下代码对所有可能的列组合进行卡方分析。
Dat <- esoph[ , 1:3]
library(plyr)
combos <- combn(ncol(Dat),2)
adply(combos, 2, function(x)
test <- chisq.test(Dat[, x[1]], Dat[, x[2]])
out <- data.frame("Row" = colnames(Dat)[x[1]]
, "Column" = colnames(Dat[x[2]])
, "Chi.Square" = round(test$statistic,3)
, "df"= test$parameter
, "p.value" = round(test$p.value, 3)
)
return(out)
)
X1 Row Column Chi.Square df p.value
1 1 agegp alcgp 1.419 15 1
2 2 agegp tobgp 2.400 15 1
3 3 alcgp tobgp 0.619 9 1
我想知道如何用tidyverse
进行同样的操作。任何提示。
答案
Dat <- esoph[, 1:3]
library(tidyverse)
library(broom)
data.frame(t(combn(names(Dat),2)), stringsAsFactors = F) %>%
mutate(d = map2(X1, X2, ~tidy(chisq.test(Dat[,.x], Dat[,.y])))) %>%
unnest()
# X1 X2 statistic p.value parameter method
# 1 agegp alcgp 1.4189096 0.9999971 15 Pearson's Chi-squared test
# 2 agegp tobgp 2.4000000 0.9999022 15 Pearson's Chi-squared test
# 3 alcgp tobgp 0.6194617 0.9999240 9 Pearson's Chi-squared test
以上是关于tidyverse:Chi Square适用于所有列的组合的主要内容,如果未能解决你的问题,请参考以下文章
卡方检验 (Chi-square test / Chi-square goodness-of-fit test)
R可视化绘制卡方分布图(Chi-Square Distribution)