我对正在执行卡方检验的数据进行了分组,并希望返回一个汇总表,其中包含来自 htest
对象的多个值。例如( from a previous question ),
library(dplyr)
set.seed(1)
foo <- data.frame(
partido=sample(c("PRI", "PAN"), 100, 0.6),
genero=sample(c("H", "M"), 100, 0.7),
GM=sample(c("Bajo", "Muy bajo"), 100, 0.8)
)
foo %>%
group_by(GM) %>%
summarise(p.value=chisq.test(partido, genero)$p.value))
返回 p 值,但我希望将
p.value
对象中的多个值(比如 statistic
和 htest
)作为汇总表中的不同列返回。我试过了
foo %>%
group_by(GM) %>%
summarise(htest=chisq.test(partido, genero)) %>%
mutate(p.value=htest$p.value, statistic=htest$statistic)
但这会引发错误
您如何使用 tidyverse 工具完成此任务?
最佳答案
另一种选择是使用 broom::tidy
library(broom)
library(tidyverse)
foo %>%
group_by(GM) %>%
nest() %>%
transmute(
GM,
res = map(data, ~tidy(chisq.test(.x$partido, .x$genero)))) %>%
unnest()
## A tibble: 2 x 5
# GM statistic p.value parameter method
# <fct> <dbl> <dbl> <int> <chr>
#1 Bajo 0.0157 0.900 1 Pearson's Chi-squared test with Yates' c…
#2 Muy ba… 0.504 0.478 1 Pearson's Chi-squared test with Yates' c…
关于r - 在汇总的小标题中保留 chisq.test 的多个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54489669/