use*_*497 2 statistics r anova rstatix
这真让我抓狂。我正在使用anova_testfrom rstatix,它告诉我,当我的列明显存在时,它们不存在。
这就是我的数据框的样子:
\nID = c(1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3) \nForm = c("A", "A", "A", "B", "B", "B", "A", "A", "A", "B", "B", "B", "A", "A", "A", "B", "B", "B")\nPen = c("Red", "Blue", "Green", "Red", "Blue", "Green", "Red", "Blue", "Green","Red", "Blue", "Green","Red", "Blue", "Green","Red", "Blue", "Green")\nTime = c(20, 4, 6, 2, 76, 3, 86, 35, 74, 94, 14, 35, 63, 12, 15, 73, 87, 33)\ndf <- data.frame(ID, Form, Pen, Time)\nRun Code Online (Sandbox Code Playgroud)\nID、Form 和 Pen 是因子,而 Time 是数字。因此,每个受试者都用红、蓝、绿笔完成表格 A 和 B,我测量了每个受试者完成表格所需的时间。
\n这是我故意提出的一个假数据集来问这个问题。实际上,该数据框源自具有更多变量的更大数据集。每个变量都有更多的观察结果(因此,不仅仅是主题 1 和表格 A 和红笔的一个数据点,如本例所示,而是多个),因此我对它们进行了总结以获得平均时间。
\ndf <- original.df %>% dplyr::select(ID, Form, Pen, Time)\ndf <- df %>% dplyr::group_by(ID, Form, Pen) %>% dplyr::summarise(Time = mean(Time))\ndf <- df %>% convert_as_factor(ID, Form, Pen)\ndf$Time <- as.numeric(df$Time)\nRun Code Online (Sandbox Code Playgroud)\n我想测试主效应和交互效应,所以我正在做 2 x 3 重复测量方差分析(双向方差分析,因为 Form 和 Pen 是两个自变量)。
\naov <- rstatix::anova_test(data = df, dv = Time, wid = ID, within = c(Form, Pen))\nRun Code Online (Sandbox Code Playgroud)\n我不断收到此错误:
\nError: Problem with `mutate()` input `data`.\nx Can't subset columns that don't exist.\nx Columns `ID` and `Form` don't exist.\n\xe2\x84\xb9 Input `data` is `map(.data$data, .f, ...)`.\nRun Code Online (Sandbox Code Playgroud)\n为什么?!任何帮助将不胜感激。我已经花了几个小时寻找解决方案,但我感到非常沮丧。
\n感谢您在帖子中添加额外的详细信息 - 根据您提供的内容,您似乎需要在将 df 传递给之前取消分组anova_test(),例如
#install.packages("rstatix")
library(rstatix)
library(tidyverse)
ID = c(1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3)
Form = c("A", "A", "A", "B", "B", "B", "A", "A", "A", "B", "B", "B", "A", "A", "A", "B", "B", "B")
Pen = c("Red", "Blue", "Green", "Red", "Blue", "Green", "Red", "Blue", "Green","Red", "Blue", "Green","Red", "Blue", "Green","Red", "Blue", "Green")
Time = c(20, 4, 6, 2, 76, 3, 86, 35, 74, 94, 14, 35, 63, 12, 15, 73, 87, 33)
original.df <- data.frame(ID, Form, Pen, Time)
df <- original.df %>%
dplyr::select(ID, Form, Pen, Time)
df <- df %>%
dplyr::group_by(ID, Form, Pen) %>%
dplyr::summarise(Time = mean(Time))
df <- df %>%
convert_as_factor(ID, Form, Pen)
df$Time <- as.numeric(df$Time)
df <- ungroup(df)
aov <- rstatix::anova_test(data = df, dv = Time, wid = ID, within = c(Form, Pen))
Run Code Online (Sandbox Code Playgroud)
您可以查看数据帧是否使用 进行分组str(),例如str(df)before 和 afterungrouped()向您显示差异。如果进行此更改后仍然出现错误,请告诉我