我正在使用contrast包在R中构建lm的对比度。通过下面的代码,我对Trt1和Trt3进行了对比。
Y <- c(10, 12, 14, 16, 9, 8)
Trt <- gl(n=3, k=2, length=3*2)
Data1 <- data.frame(Y, Trt)
Data1.lm <- lm(Y~Trt, data = Data1)
library(contrast)
Contrs1 <- contrast(Data1.lm, a=list(Trt="1"), b=list(Trt="3"), type = "average")
print(Contrs1, X=TRUE)我想在(Trt1和Trt2)和Trt3的平均值之间做一个对比。我使用了下面的代码
Contrs2 <- contrast(Data1.lm, a=list(Trt="1", Trt="2"), b=list(Trt="3"), type = "average")
print(Contrs2, X=TRUE)
lm model parameter contrast
Contrast S.E. Lower Upper t df Pr(>|t|)
1 6.5 1.224745 2.602315 10.39768 5.31 3 0.0131
Contrast coefficients:
(Intercept) Trt2 Trt3
1 0 1 -1我可以看出这不是想要的对比。我想知道如何与R中的contrast包形成正确的对比。在这方面的任何帮助都将受到高度的感谢。谢谢
附注:我知道在R中使用aov函数的对比矩阵,但是对于这个特殊的问题,我想使用contrast软件包。
发布于 2012-02-18 06:04:00
您应该将包含的治疗级别指定为矢量(Trt=c("1","2")),而不是列表。我通过查看?contrast.lm中的示例了解了这一点(尽管无可否认,它有助于了解您正在寻找的是什么):
Contrs2 <- contrast(Data1.lm, a=list(Trt=c("1","2")), b=list(Trt="3"),
type = "average")
print(Contrs2, X=TRUE)
## lm model parameter contrast
## Contrast S.E. Lower Upper t df Pr(>|t|)
## 1 4.5 1.06066 1.124506 7.875494 4.24 3 0.024https://stackoverflow.com/questions/9335708
复制相似问题