如何从 lsmobj 中提取预测的边际均值
How to extract predicted marginal means from an lsmobj
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
我想要的是这样的:
lsmeans(oranges.lm1, "day")[,2]
# 5.564415 6.494807 13.664571 8.742289 15.441803 11.394782
但这不起作用(它打印与上面相同的输出)。我不知道这是不是因为结果(一个 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
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
我想要的是这样的:
lsmeans(oranges.lm1, "day")[,2]
# 5.564415 6.494807 13.664571 8.742289 15.441803 11.394782
但这不起作用(它打印与上面相同的输出)。我不知道这是不是因为结果(一个 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