如何解决方差分析中“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)
向您展示了差异。如果您在进行此更改后仍然遇到错误,请告诉我
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。