【发布时间】:2021-08-11 11:46:42
【问题描述】:
假设我的数据集中有这些分类变量。所有变量都与人们对 COVID-19 的担忧有关,并进行了两次评估(与不同的参与者..)。
我的主要目标是检查time(将是“恒定”)是否与每个item(经济、社会凝聚力等)的流行程度相关(会有所不同)。因此,我需要执行几个卡方检验。
我使用 nest_by 或 xtabs 遵循了一些说明,但我没有得到正确的结果。
我想在此分析中保留 tidyverse 环境。
主要目标是进行几个卡方检验,例如这个:
ds_plot_likert %>%
pivot_longer(cols = -c(time),
names_to = "item", values_to = "response") %>%
group_by(item, time, response) %>%
summarise(N = n()) %>%
mutate(pct = N / sum(N)) %>%
filter(item == "Children's academic achievement") %>% #need to change all the time...
xtabs(formula = pct ~ time + response, data = .) %>%
chisq.test()
但对于我数据集中的所有变量(最好使用 tidyverse)。
谢谢!
以下代码为您提供了重现的可能性。
ds <- structure(list(time = c("First", "First", "First", "First", "First",
"First", "First", "First", "First", "First", "First", "First",
".Second", "First", "First", "First", "First", ".Second", "First",
"First", "First", "First", "First", "First", "First", "First",
".Second", "First", "First", ".Second", "First", "First", "First",
"First", "First", "First", "First", "First", "First", "First",
".Second", "First", "First", "First", ".Second", ".Second", "First",
"First", "First", ".Second", ".Second", "First", "First", "First",
"First", ".Second", ".Second", "First", "First", "First", "First",
"First", ".Second", "First", "First", "First", "First", ".Second",
"First", "First", "First", "First", "First", "First", "First",
".Second", "First", ".Second", "First", "First", "First", "First",
"First", "First", "First", "First", "First", "First", "First",
".Second", "First", "First", "First", "First", "First", "First",
"First", ".Second", ".Second", "First"), Economy = structure(c(4L,
3L, 3L, 4L, 3L, 4L, 4L, 1L, 3L, 3L, 3L, 3L, 3L, 4L, 3L, 4L, 4L,
3L, 3L, NA, 2L, 3L, 4L, 3L, 3L, 4L, 4L, 2L, 3L, 4L, 4L, 3L, 2L,
4L, 2L, 3L, 2L, 3L, 3L, 3L, 2L, 4L, 4L, 3L, 3L, 3L, 4L, 3L, 3L,
4L, 2L, 4L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 3L, 4L, 3L, 2L,
3L, 3L, 3L, 4L, NA, 2L, 4L, 3L, 4L, 2L, 3L, 3L, 2L, NA, 3L, 2L,
3L, 2L, 3L, 4L, 3L, 3L, 3L, 3L, 3L, 4L, 3L, 4L, 3L, 3L, 2L, 3L,
3L, 3L, 4L), .Label = c("Not at all", "A little", "Moderately",
"Very much"), class = "factor"), `My personal finance` = structure(c(3L,
2L, 4L, 2L, 4L, 4L, 3L, 2L, 3L, 3L, 2L, 3L, 2L, 4L, 3L, 4L, 4L,
2L, 3L, NA, 3L, 3L, 4L, 3L, 3L, 4L, 3L, 4L, 3L, 4L, 4L, 3L, 4L,
3L, 4L, 2L, 2L, 3L, 2L, 2L, 4L, 3L, 4L, 3L, 3L, 3L, 3L, 2L, 2L,
3L, 2L, 4L, 2L, 3L, 3L, 2L, 3L, 3L, 2L, 2L, 3L, 3L, 4L, 4L, 2L,
3L, 3L, 4L, 3L, NA, 2L, 3L, 3L, 4L, 2L, 3L, 2L, 3L, NA, 3L, 2L,
2L, 2L, 3L, 4L, 3L, 2L, 3L, 2L, 2L, 2L, 2L, 4L, 3L, 2L, 2L, 3L,
3L, 3L, 3L), .Label = c("Not at all", "A little", "Moderately",
"Very much"), class = "factor"), `My own health` = structure(c(3L,
2L, 4L, 3L, 4L, 4L, 3L, 4L, 2L, 4L, 3L, 3L, 3L, 4L, 3L, 3L, 4L,
3L, 2L, NA, 3L, 4L, 3L, 4L, 3L, 2L, 1L, 2L, 3L, 3L, 4L, 2L, 4L,
2L, 4L, 4L, 3L, 2L, 2L, 4L, 4L, 2L, 4L, 3L, 3L, 2L, 3L, 3L, 2L,
2L, 3L, 3L, 1L, 3L, 4L, 4L, 3L, 3L, 2L, 2L, 4L, 3L, 3L, 4L, 2L,
3L, 3L, 4L, 4L, NA, 2L, 2L, 3L, 4L, 1L, 3L, 4L, 3L, NA, 3L, 3L,
3L, 3L, 3L, 3L, 4L, 4L, 2L, 4L, 2L, 2L, 3L, 4L, 3L, 2L, 3L, 4L,
2L, 3L, 3L), .Label = c("Not at all", "A little", "Moderately",
"Very much"), class = "factor"), `My friends and family health` = structure(c(4L,
3L, 4L, 4L, 4L, 4L, 3L, 4L, 3L, 4L, 3L, NA, 3L, 4L, 3L, 3L, 4L,
4L, 3L, NA, 3L, 4L, 3L, 4L, 3L, 3L, 2L, 2L, 3L, 4L, 4L, 2L, 4L,
1L, 4L, 4L, 4L, 4L, 3L, 4L, 4L, 4L, 4L, 3L, 3L, 3L, 3L, 4L, 3L,
4L, 3L, 3L, 4L, 3L, 3L, 4L, 3L, 3L, 3L, 2L, 4L, 3L, 4L, 4L, 2L,
3L, 3L, 4L, 4L, NA, 2L, 4L, 3L, 4L, 2L, 3L, 4L, 3L, NA, 3L, 4L,
3L, 3L, 4L, 3L, 4L, 4L, 3L, 4L, 3L, 3L, 3L, 3L, 4L, 3L, 3L, 4L,
4L, 3L, 4L), .Label = c("Not at all", "A little", "Moderately",
"Very much"), class = "factor"), `Social cohesion` = structure(c(3L,
3L, 2L, 4L, 4L, 2L, 4L, 4L, 2L, 3L, 3L, 3L, 3L, 4L, 3L, 3L, 4L,
3L, 3L, NA, 3L, 3L, 4L, 3L, 3L, 2L, 1L, 2L, 2L, 4L, 4L, 3L, 3L,
1L, 3L, NA, 2L, 3L, 2L, 4L, 4L, 2L, 3L, 3L, 4L, 4L, 3L, 3L, 3L,
2L, 2L, 3L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 4L, 2L,
3L, 3L, 3L, 4L, NA, 2L, 3L, 3L, 2L, 1L, 1L, 3L, 2L, NA, 3L, NA,
3L, 3L, 4L, 2L, 4L, 3L, 1L, 4L, 2L, 4L, 3L, 2L, 4L, 2L, 3L, 4L,
4L, 2L, 2L), .Label = c("Not at all", "A little", "Moderately",
"Very much"), class = "factor"), `Food and pharmaceutical drugs` = structure(c(2L,
3L, 4L, 4L, 3L, 2L, 4L, 1L, 2L, 4L, 3L, NA, 2L, 3L, 3L, 2L, 4L,
3L, 3L, NA, 3L, 4L, 3L, 3L, 3L, 1L, 1L, 2L, 3L, 4L, 2L, 2L, 4L,
4L, 4L, 1L, 4L, 2L, 2L, 3L, 4L, 2L, 4L, 3L, 2L, 2L, 3L, 3L, 2L,
3L, 2L, 3L, 4L, 2L, 2L, 2L, 3L, 3L, 3L, 2L, 4L, 3L, 3L, 4L, 2L,
3L, 3L, 3L, 4L, NA, 2L, 3L, 2L, 2L, 1L, 1L, 2L, 2L, NA, 1L, 1L,
2L, 2L, 2L, 1L, 3L, 3L, 2L, 3L, 1L, 2L, 2L, 2L, 4L, 2L, 3L, 3L,
2L, 1L, 2L), .Label = c("Not at all", "A little", "Moderately",
"Very much"), class = "factor"), `Price of grocery products` = structure(c(2L,
2L, 3L, 4L, 3L, 4L, 3L, 2L, 2L, 4L, 3L, 3L, 2L, 4L, 3L, 3L, 4L,
4L, 3L, NA, 3L, 4L, 3L, 3L, 3L, 2L, 3L, 2L, 3L, 4L, 2L, 4L, 3L,
4L, 4L, 4L, 4L, 2L, 2L, 3L, 4L, 2L, 4L, 3L, 3L, 3L, 3L, 4L, 2L,
4L, 2L, 3L, 4L, 2L, 2L, 3L, 4L, 3L, 2L, 3L, 4L, 3L, 4L, 4L, 2L,
3L, 3L, 4L, 4L, NA, 2L, 3L, 2L, 2L, 2L, 1L, 3L, 3L, NA, 1L, 1L,
2L, 2L, 3L, 1L, 3L, 4L, 2L, 3L, 2L, 2L, 2L, 2L, 4L, 3L, 3L, 3L,
4L, 1L, 2L), .Label = c("Not at all", "A little", "Moderately",
"Very much"), class = "factor"), `Stock prices` = structure(c(2L,
2L, 2L, 4L, 3L, 2L, 1L, 1L, 3L, 4L, 2L, 2L, 2L, 4L, 3L, 3L, 4L,
3L, 2L, NA, 1L, 2L, 3L, 3L, 3L, 1L, 1L, 1L, 3L, 1L, 2L, 2L, 2L,
4L, 4L, 2L, 3L, 2L, 2L, 3L, 2L, 3L, 4L, 3L, 4L, 3L, 3L, 2L, 2L,
2L, 1L, 3L, 3L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, NA, 2L, 4L, 2L,
3L, 3L, 4L, 4L, NA, 2L, 2L, 2L, 2L, 2L, 1L, 3L, 3L, NA, 3L, 1L,
3L, 3L, 4L, 1L, 3L, 4L, 1L, 3L, 1L, 4L, 2L, 2L, 2L, NA, 3L, 2L,
4L, 1L, 2L), .Label = c("Not at all", "A little", "Moderately",
"Very much"), class = "factor"), `Children's academic achievement` = structure(c(4L,
3L, 4L, 1L, NA, NA, 1L, 1L, 1L, 1L, 3L, 3L, 2L, 4L, 3L, 4L, NA,
4L, 3L, NA, 1L, 1L, 3L, 3L, 3L, 1L, 4L, 1L, 3L, 4L, 3L, 2L, 4L,
1L, 4L, 1L, 1L, 3L, 2L, 3L, 1L, 2L, 1L, 3L, 2L, 3L, 3L, 3L, 1L,
1L, 1L, 4L, 1L, 1L, 2L, 3L, 3L, 3L, 3L, 2L, 4L, 3L, 3L, 4L, 2L,
2L, 1L, 1L, 4L, NA, 2L, 2L, 2L, 4L, 1L, 2L, 1L, 2L, NA, 2L, 1L,
NA, 3L, 2L, 2L, 1L, 4L, 2L, 3L, 1L, 4L, 1L, 1L, 1L, 3L, 1L, 1L,
1L, 1L, 2L), .Label = c("Not at all", "A little", "Moderately",
"Very much"), class = "factor")), class = "data.frame", row.names = c(NA,
-100L))
【问题讨论】:
-
你认为“正确”的结果是什么,你目前得到了什么结果?
-
谢谢!五分钟,我会编辑帖子
-
@G.Grothendieck 完成。谢谢! Jdobres,完成!
标签: r loops dplyr tidyverse chi-squared