R 如何从lsmobj中提取预测边际均值

R 如何从lsmobj中提取预测边际均值,r,s4,R,S4,只要手动操作,lsmeans包就可以轻松获得预测的边际平均值。我想在一个只使用预测方法的函数中实现这一点的自动化 以下是小插曲中的一个示例: library("lsmeans") data(oranges) oranges.lm1 <- lm(sales1 ~ price1 + price2 + day + store, data = oranges) lsmeans(oranges.lm1, "day") # day lsmean SE df lower.CL up

只要手动操作,
lsmeans
包就可以轻松获得预测的边际平均值。我想在一个只使用预测方法的函数中实现这一点的自动化

以下是小插曲中的一个示例:

library("lsmeans")
data(oranges)
oranges.lm1 <- lm(sales1 ~ price1 + price2 + day + store, data = oranges)
lsmeans(oranges.lm1, "day")
# day    lsmean       SE df  lower.CL  upper.CL
# 1    5.564415 1.768083 23  1.906856  9.221974
# 2    6.494807 1.728959 23  2.918183 10.071430
# 3   13.664571 1.751505 23 10.041308 17.287835
# 4    8.742289 1.733920 23  5.155403 12.329175
# 5   15.441803 1.785809 23 11.747576 19.136029
# 6   11.394782 1.766726 23  7.740031 15.049533

但这不起作用(它打印与上面相同的输出)。我不知道这是否是因为结果(一个
lsmobj
对象)是一个
S4
对象。如何仅提取
lsmean
列作为向量

正如@rvl所指出的,正确的方法是使用
predict

predict(lsmeans(oranges.lm1, "day"))
效率较低的替代方案是
summary
,它将依次调用
lsmeans:::summary.ref.grid

summary(lsmeans(oranges.lm1, "day"))[,2]
# [1]  5.564415  6.494807 13.664571  8.742289 15.441803 11.394782

:p没问题,我在想可能有另一种方法通过一个插槽(
showClass(“lsmobj”)
)但是找不到itOr just
predict(lsmeans(…)
顺便说一句,
predict
方法会更有效,因为它绕过了计算SEs等。
summary(lsmeans(oranges.lm1, "day"))[,2]
# [1]  5.564415  6.494807 13.664571  8.742289 15.441803 11.394782