方差分析中“mutate()”输入“data”的问题rstatix

问题描述

这让我发疯。我正在使用 rstatix 的 anova_test,它告诉我我的列在它们明显存在时不存在。

这是我的数据框的样子:

ID = c(1,1,2,3,3) 
Form = c("A","A","B","B")
Pen = c("Red","Blue","Green","Red","Green")
Time = c(20,4,6,76,86,35,74,94,14,63,12,15,73,87,33)
df <- data.frame(ID,Form,Pen,Time)

ID、Form、Pen 是因子,Time 是数字。因此,每个受试者都用红色、蓝色和绿色钢笔完成了表格 A 和 B,我测量了每个人完成表格所用的时间。

这是我特意提出来提出这个问题的假数据集。实际上,此数据框源自具有更多变量的更大数据集。每个变量都有更多的观察值(因此不仅仅是主题 1 和表格 A 和红笔的一个数据点,如本例中,而是多个),因此我进行了总结以获得平均时间。

df <- original.df %>% dplyr::select(ID,Time)
df <- df %>% dplyr::group_by(ID,Pen) %>% dplyr::summarise(Time = mean(Time))
df <- df %>% convert_as_factor(ID,Pen)
df$Time <- as.numeric(df$Time)

我想测试主要效果和交互效果,所以我进行了 2 x 3 重复测量方差分析(一种双向方差分析,因为 Form 和 Pen 是两个自变量)。

aov <- rstatix::anova_test(data = df,dv = Time,wid = ID,within = c(Form,Pen))

而且我不断收到此错误

Error: Problem with `mutate()` input `data`.
x Can't subset columns that don't exist.
x Columns `ID` and `Form` don't exist.
ℹ Input `data` is `map(.data$data,.f,...)`.

为什么?!任何帮助将不胜感激。我一直在寻找 HOURS 的解决方案,但我感到非常沮丧。

解决方法

感谢您在帖子中添加其他详细信息 - 根据您提供的内容,您似乎需要在将 df 传递给 dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.annotation:annotation:1.1.0' implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'androidx.core:core-ktx:1.3.2' implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0' implementation 'com.google.android.material:material:1.3.0' implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0' def nav_version = "2.3.3" implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" def room_version = "2.2.6" implementation "androidx.room:room-runtime:$room_version" implementation "androidx.room:room-ktx:$room_version" kapt "androidx.room:room-compiler:$room_version" testImplementation "androidx.room:room-testing:$room_version" testImplementation 'androidx.test:core:1.3.0' testImplementation 'junit:junit:4.13.1' androidTestImplementation "androidx.navigation:navigation-testing:$nav_version" androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' } 之前取消组合,例如

anova_test()

您可以查看数据帧是否使用 #install.packages("rstatix") library(rstatix) library(tidyverse) ID = c(1,1,2,3,3) Form = c("A","A","B","B") Pen = c("Red","Blue","Green","Red","Green") Time = c(20,4,6,76,86,35,74,94,14,63,12,15,73,87,33) original.df <- data.frame(ID,Form,Pen,Time) df <- original.df %>% dplyr::select(ID,Time) df <- df %>% dplyr::group_by(ID,Pen) %>% dplyr::summarise(Time = mean(Time)) df <- df %>% convert_as_factor(ID,Pen) df$Time <- as.numeric(df$Time) df <- ungroup(df) aov <- rstatix::anova_test(data = df,dv = Time,wid = ID,within = c(Form,Pen)) 分组,例如str() 之前和之后 str(df) 向您展示了差异。如果您在进行此更改后仍然遇到错误,请告诉我