对于数据...
library(productplots)
library(ggmosaic)
对于代码...
library(tidyverse)
library(broom)
我正在尝试创建整洁的 chisq.test 输出,以便我可以轻松过滤或可视化 p 值。
我正在使用“happy”数据集(包含在上面列出的任何一个包中)
对于这个例子,如果我想在所有其他变量上调节“快乐”变量,我会隔离分类变量(对于这个例子,我不会根据年龄、年份等创建因素分组),然后运行一个简单的函数。
df<-happy%>%select(-year,-age,-wtssall)
lapply(df,function(x)chisq.test(happy$happy,x)
但是,我想要“broom”包的整洁输出,以便我可以创建 p 值的数据框以进行过滤或可视化。
我尝试了类似于下面代码的各种组合,希望进一步管道到“整洁”的扫帚函数或“过滤器”中,在那里我可以缩小显着的 p 值,或者管道到 p- 的 ggplot 条形图值或 chi 统计数据。
df%>%summarise_if(is.factor,funs(chisq.test(.,df$happy)$p.value))
...但输出似乎不正确。如果我针对变量分别运行 invidual chisq.test ,答案会有所不同。
那么,有没有一种方法可以轻松比较分类变量(在本例中与所有其他列“快乐”),并返回一个整洁的数据框以供进一步操作和分析?
使用 dplyr::mutate、tidyr::nest 和 purrr::map 的 Purrr 解决方案会很棒,但我有一种感觉,嵌套列表列方法不适用于 chisq.test。