如何解决为 R 中的许多列运行带有 emmeans 和对比的 LM
我正在尝试使用特定对比对许多列使用 LM 来比较处理之间的均值。当我单独运行每一列时,它工作得很好,但我有 1000 多列,单独设置它们是不可行的。我对 R 还很陌生,还没有弄清楚如何使用循环,因此非常感谢任何帮助。
这就是我设置对比的方式
df$GROUP <- factor(df$GROUP,levels = c("TRT1","TRT2","TRT3","TRT4","TRT5","TRT6","TRT7"))
Contrasts <- list(A = c(0,1,-1,0),B = c(-1,2,C = c(0,D = c(0,-1),E = c(0,1),F = c(0,-1))
This is an example of my data set
基本上我需要为每一列运行这段代码。
lm1 <- lm(CE(12:0) ~ GROUP,data = df)
lsmean <- emmeans(lm1,"GROUP")
contrast(lsmean,Contrasts,adjust = "none")
解决方法
他是一个 mlm
班级。所以简单地做:
lm1<-lm(as.matrix(df[-1])~GROUP,data = df)
这将为您运行所有回归。
例如,使用 iris
数据集:
lm(as.matrix(iris[-5])~Species,iris)
Call:
lm(formula = as.matrix(iris[-5]) ~ Species,data = iris)
Coefficients:
Sepal.Length Sepal.Width Petal.Length Petal.Width
(Intercept) 5.006 3.428 1.462 0.246
Speciesversicolor 0.930 -0.658 2.798 1.080
Speciesvirginica 1.582 -0.454 4.090 1.780
这类似于针对该组对变量运行 4 种不同的线性回归模型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。