Важно понять, почему это произошло.Вызов:
lsmeans(m, pairwise ~ Website * International)
фактически является сокращением для двухэтапной операции:
lsm <- lsmeans(m, ~ Website * International)
prs <- pairs(lsm)
, а результатом является список из двух emmGrid
объектов, lsm
и prs
.
То, что вы кодировали, было as.glht(pairs(lsmeans(m, pairwise ~ Website * International)))
, а внутренняя часть, pairs(lsmeans(m, pairwise ~ Website * International))
, уже избыточна, поскольку она генерирует парные сравнения каждого элемента результатов.Таким образом, вы получите список, состоящий из парных сравнений средних значений LS (что вам, вероятно, нужно) и парных сравнений парных сравнений (что, вероятно, не то, что вам нужно).
Вот два способаполучить результаты, которые вы хотите.Один из них - пропустить lhs формулы ...
as.glht(pairs(lsmeans(m, ~ Website * International)))
, другой - пропустить pairs()
и вызвать часть результатов, которую вы хотите ...
as.glht(lsmeans(m, pairwise ~ Website * International)[[2]])
Одно из моих самых больших сожалений как разработчика lsmeans / emmeans - это чертовски двусторонний интерфейс формулы.Это создало много путаницы и много вопросов, как этот.Но я обречен держать его доступным, потому что люди так спешат получить все результаты, которые они хотят, за один шаг вместо двух.Цена удобства довольно крутая.