Мне не совсем понятно, чего вы пытаетесь достичь sh, но я не думаю, что фильтрация данных - это решение.
Если ваша цель состоит в том, чтобы сравнить предельные средние значения для source
с комбинацией (fi sh, 9 процентов), вы можете сделать это, построив два набора emmeans, затем поднабор и объединение:
emm1 = emmeans(pigs.lm, "source")
emm2 = emmeans(pigs.lm, ~source*percent)
emm3 = emm2[1] + emm1 # or rbind(emm2[1], emm1)
Тогда вы получите
> confint(emm3, adjust ="none")
source percent emmean SE df lower.CL upper.CL
fish 9 3.22 0.0536 23 3.11 3.33
fish . 3.39 0.0367 23 3.32 3.47
soy . 3.67 0.0374 23 3.59 3.74
skim . 3.80 0.0394 23 3.72 3.88
Results are averaged over some or all of the levels of: percent
Results are given on the log (not the response) scale.
Confidence level used: 0.95
> contrast(emm3, "trt.vs.ctrl1")
contrast estimate SE df t.ratio p.value
fish,. - fish,9 0.174 0.0366 23 4.761 0.0002
soy,. - fish,9 0.447 0.0678 23 6.595 <.0001
skim,. - fish,9 0.576 0.0696 23 8.286 <.0001
Results are averaged over some or all of the levels of: percent
Results are given on the log (not the response) scale.
P value adjustment: dunnettx method for 3 tests
Другой (гораздо более утомительный, более подверженный ошибкам) способ сделать то же самое - получить EMM для комбинаций факторов, а затем использовать пользовательские контрасты:
> contrast(emm2, list(con1 = c(-3,0,0, 1,0,0, 1,0,0, 1,0,0)/4,
+ con2 = c(-4,1,0, 0,1,0, 0,1,0, 0,1,0)/4,
+ con3 = c(-4,0,1, 0,0,1, 0,0,1, 0,0,1)/4),
+ adjust = "mvt")
contrast estimate SE df t.ratio p.value
con1 0.174 0.0366 23 4.761 0.0002
con2 0.447 0.0678 23 6.595 <.0001
con3 0.576 0.0696 23 8.286 <.0001
Results are given on the log (not the response) scale.
P value adjustment: mvt method for 3 tests
(Корректировка mvt - это точная поправка, для которой dunnettx является лишь приблизительным значением. По умолчанию она не равна mvt, потому что она сложна в вычислительном отношении для большого числа тестов.)
В ответ на последнюю часть вопроса вы можете использовать exclude
(или include
), чтобы сосредоточиться на подмножестве уровней; см ? pairwise.emmc
.