gpt4 book ai didi

r - 执行 TukeyHSD 时选择了未定义的列

转载 作者:行者123 更新时间:2023-12-05 02:11:18 27 4
gpt4 key购买 nike

我对 R 和一般编码还很陌生,所以对于任何看似愚蠢的事情,我提前表示歉意。

我执行了方差分析并想对我的数据执行 TukeyHSD。起初,它运作良好。然后我创建了两个数据集。在每一个中,我都对数据进行了排序,只包含两种剂量类型中的一种。然后我继续执行方差分析(有效),但 Tukey 产生了这个错误

-[.data.frame`(mf, mf.cols[[i]]) : undefined columns selected.

这是什么意思?我在新创建的数据集中搜索列的名称,它们都存在。

非常感谢!

这是我创建的数据集和我收到的错误。

df1 <- Flor_Group_1_2019_EC[Flor_Group_1_2019_EC$Dose=="IM", ]
df2 <- Flor_Group_1_2019_EC[Flor_Group_1_2019_EC$Dose=="SC", ]
aov1 = aov(`CFU/g`~Treatment+`Time Point`, data=df1)
summary(aov1)
Df Sum Sq Mean Sq F value Pr(>F)
Treatment 3 3.068e+15 1.023e+15 7.774 7.98e-05 ***
`Time Point` 16 2.065e+16 1.291e+15 9.810 7.20e-16 ***
Residuals 134 1.763e+16 1.316e+14
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
1 observation deleted due to missingness
TukeyHSD(aov1)

Error in [.data.frame(mf, mf.cols[[i]]) : undefined columns selected

colnames(df1)
[1] "Steer" "Dose" "Time Point" "Treatment" "Average"
[6] "CFU/g" "Log"

最佳答案

经过一些旧的source code ,我认为这与我的数据集中的命名有关。

这是因为对于我的数据,就像这篇文章中的数据,命名约定不是很友好。虽然我们可以将“反引号”(``) 添加到 names,但在使用基于 base R 的函数进行编程时,有时很难使用这些反引号。解决方案是重命名如下:

# base
names(df1) <- gsub("CFU\\/g","CFU",names(df1))
names(df1) <- gsub("Time Point","time",names(df1))
# tidyverse
dplyr::rename(df1, CFU = `CFU/g`,
time = `Time Point`)

然后您可以重建您的模型并重做 TukeyHSD:

df1 <- Flor_Group_1_2019_EC[Flor_Group_1_2019_EC$Dose=="IM", ]
df2 <- Flor_Group_1_2019_EC[Flor_Group_1_2019_EC$Dose=="SC", ]
aov1 = aov(CFU~Treatment+ time , data=df1)
TukeyHSD(aov1)

注意:我无法提供可重现的示例,因为我无法轻松创建示例数据集。但是,我确实按照此答案中所述解决了这个问题。

关于r - 执行 TukeyHSD 时选择了未定义的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57650722/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com