对于数据...
library(productplots)
library(ggmosaic)
对于代码...
library(tidyverse)
library(broom)
我正在尝试创建整洁的 chisq.test 输出,以便我可以轻松过滤或可视化 p 值。
我正在使用“快乐”数据集(包含在上面列出的任何一个包中)
对于这个例子,如果我想在所有其他变量上设置“快乐”变量,我会隔离分类变量(对于这个例子,我不会根据年龄、年份等创建因子分组),然后运行一个简单的函数。
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))
...但输出似乎不正确。如果我针对变量单独运行 chisq.test,答案会有所不同。
那么,有没有一种方法可以轻松地比较分类变量,在这种情况下与所有其他列“快乐”,并返回一个整洁的数据框以进行进一步的操作和分析?
使用 dplyr::mutate、tidyr::nest 和 purrr::map 的 Purrr 解决方案会很棒,但我感觉嵌套列表列方法不适用于 chisq.test。