[英]Running several regressions with changing outcome variable in R
我有一個 dataframe (df),如下所示:
condition dv1 dv2 dv3
1 2 4 3
2 5 7 4
3 7 1 2
為了同時運行多個回歸,我使用了這樣的代碼:
dfdv <- df[,2:4]
output <- lm(as.matrix(dfdv) ~ condition, data = df)
summary(output)
這為我提供了 dv1、dv2 和 dv3 的所有 dv ~ 條件回歸。 這些是 output 中給出的回歸:
dv1 ~ condition
dv2 ~ condition
dv3 ~ condition
但是,我現在想控制回歸中的不同條件。 具體來說,我想找出一種有效運行以下回歸的方法。
dv1 ~ condition + dv1
dv1 ~ condition + dv2
dv1 ~ condition + dv3
我使用與上述類似的原理嘗試了以下操作,但沒有成功。
dfdv <- df[,2:4]
output2 <- lm(dv1 ~ condition + as.matrix(dfdv), data = df)
summary(output2)
它給了我一個單一的回歸,使用了一個回歸中的所有 dv,而不是我想要的回歸。 這就是它給我的:
dv1 ~ condition + dv1 + dv2 + dv3
有誰知道我如何使用簡單的代碼執行這些回歸分析? 我的實際數據集中比我在這個例子中包含的更多。
我們可以為此使用lapply
。 遍歷列名“dv”,通過指定響應和因變量使用reformulate
公式創建公式,然后應用lm
v1 <- grep('^dv\\d+$", names(df), value = TRUE)
lapply(v1, function(dv) lm(reformulate(c(dv, "condition"),
dv), data = df))
或使用paste
創建公式
lapply(v1, function(dv) lm(paste0(dv, " ~ ", "condition + ", dv), data = df))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.