gpt4 book ai didi

r - as.glht : Cannot convert an object of class ‘list’ to a ‘glht’ object

转载 作者:行者123 更新时间:2023-12-04 09:31:34 25 4
gpt4 key购买 nike

我有以下 R 代码:

# load data
df = read.csv("https://gist.githubusercontent.com/ZeningQu/fa4dbe5a1e82b71f7ebf6e35ec56b72b/raw/3072410fb0ea900fae4dff9cb68c5a2e2a2bab2f/bookflights.csv")
View(df)
df$Subject = factor(df$Subject) # convert to nominal factor
df$International = factor(df$International) # convert to nominal factor
df$Ease = ordered(df$Ease) # convert to ordinal factor

# analyze Ease Likert ratings on Website * International with ordinal logistic regression
library(MASS) # for polr
library(car) # for Anova
# set sum-to-zero contrasts for the Anova call
contrasts(df$Website) <- "contr.sum"
contrasts(df$International) <- "contr.sum"
m = polr(Ease ~ Website * International, data=df, Hess=TRUE) # ordinal logistic
Anova(m, type=3)

# post hoc pairwise comparisons
library(multcomp)
library(lsmeans) # equivalent way using lsmeans, pairs, and as.glht
summary(as.glht(pairs(lsmeans(m, pairwise ~ Website * International))),
test=adjusted(type="none"))

错误:
Error in as.glht.default(pairs(lsmeans(m, pairwise ~ Website * International))) : 
Cannot convert an object of class ‘list’ to a ‘glht’ object

我知道这是 as.glht 抛出的错误: https://github.com/cran/emmeans/blob/master/R/glht-support.R#L169
但是我能做些什么来转换 pairsglht ?

最佳答案

了解为什么会发生这种情况很重要。电话:

lsmeans(m, pairwise ~ Website * International)

实际上是两步操作的简写:
lsm <- lsmeans(m, ~ Website * International)
prs <- pairs(lsm)

结果是两个 emmGrid 的列表对象, lsmprs .

你编码的是 as.glht(pairs(lsmeans(m, pairwise ~ Website * International))) ,以及内部部分, pairs(lsmeans(m, pairwise ~ Website * International))已经过大了,因为它会生成结果的每个元素的成对比较。因此,您会得到一个列表,其中包含 LS 均值的成对比较(这可能是您想要的)和成对比较的成对比较(这可能不是您想要的)。

这里有两种方法可以得到你想要的结果。一种是省略 l.h.s.公式的...
as.glht(pairs(lsmeans(m, ~ Website * International)))

另一种是省略 pairs()并调用您想要的部分结果......
as.glht(lsmeans(m, pairwise ~ Website * International)[[2]])

作为 的开发者,我最大的遗憾之一lsmeans/emmeans 就是那个该死的双面公式界面。它造成了很多困惑和很多像这样的问题。但我注定要保持它可用,因为人们急于一步而不是两步就得到他们想要的所有结果。便利的代价是相当高的。

关于r - as.glht : Cannot convert an object of class ‘list’ to a ‘glht’ object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54321034/

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