【问题标题】:Unable to perform Tukey's HSD test on interaction无法对交互执行 Tukey 的 HSD 测试
【发布时间】:2019-06-18 20:43:16
【问题描述】:

我有一个重要的交互,想对其进行 Tukey 的 HSD 测试,但是,我在网上找到的示例似乎不适合我。

我的数据:

>dput(head(dataAvgSucCI))
structure(list(Collection = c(1L, 1L, 1L, 1L, 1L, 2L), Irrigation = 
structure(c(1L,2L, 3L, 4L, 5L, 1L), .Label = c("Rate1", "Rate2", "Rate3", "Rate4", 
"Rate5"), class = "factor"), meanSuc = c(0.585416666666667, 0.5032, 
0.61375, 0.602775, 0.688466666666667, 0.545133333333333), ab = 
structure(c(1L, 3L, 5L, 7L, 9L, 2L), .Label = c("1.Rate1", "2.Rate1", "1.Rate2", 
"2.Rate2", "1.Rate3", "2.Rate3", "1.Rate4", "2.Rate4", "1.Rate5", 
"2.Rate5"), class = "factor")), row.names = c(NA, -6L), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"), vars = "Collection", drop = TRUE, indices 
= list(0:4, 5L), group_sizes = c(5L, 1L), biggest_group_size = 5L, labels = 
structure(list(Collection = 1:2), row.names = c(NA, -2L), class = "data.frame", 
vars = "Collection", drop = TRUE)

我想做什么:

require(multcomp) 
intSucCI <- with(dataAvgSucCI, interaction(Collection, Irrigation)) 
sucCIHSD.aov <- aov(meanSuc ~ Collection*Irrigation, data=dataAvgSucCI) 
summary(sucCIHSD.aov) 
sucCIHSD.glht <- glht(sucCIHSD.aov, linfct = mcp(intSucCI = "Tukey"))

错误代码,出现在上一行代码的最后一行:

mcp2matrix 中的错误(模型,linfct = linfct): 变量“intSucCI”已在“linfct”中指定,但在“模型”中找不到!`

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: r tukey


    【解决方案1】:

    你知道 TukeyC 库吗?

    library(TukeyC)
    data(FE)
    
    dad = FE$dfm
    
    mod = aov(y ~ blk + N*P*K, dad)
    
    #Studing K within N0 and P0.
    tk = TukeyC(mod, which = 'N:P:K', fl1 = 1, fl2 = 1)
    summary(tk)
    plot(tk)
    
    See help(TukeyC) to more details!
    
    
    
    
    

    【讨论】:

    • 嗨!感谢您的回复,您能否具体分享一下这将如何处理我的数据?我不确定如何将我的应用到您放置的内容中,但代码似乎很有希望。谢谢!
    • mod = aov(meanSuc ~ Collection*Irrigation,dataAvgSucCI); tk = TukeyC(mod,which='Collection:Irrigation',fl1= 1)#Irrigation inside collection 1;plot(tk);summary(tk)
    • 谢谢!这真的很有帮助,我一定会使用它。您知道是否也可以同时对所有灌溉处理进行 Tukey's?所以它仍然将它们分为 10 个收集灌溉处理,但 Tukey 对所有 10 个值的分析一次。
    • 您可以使用apply函数或循环(for)。假设 Collection 有十个级别。因此,比较所有集合级别的灌溉有: tk=list();for(i in 1:10)tk[[i]] = TukeyC(mod, which='Collection:Irrigation', fl1=i); sapply(tk,总结)。是吗?
    • 抱歉,我认为我没有很好地解释我的意思。 Collection 有 2 个值,Irrigation 有 5 个值,因此总共有 10 个处理。我不想比较每个集合中的 5 个灌溉值,而是一次比较所有 10 个组合。这可能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2011-12-05
    • 2020-07-06
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多