Repeat regression with varying dependent variable

巧了我就是萌 提交于 2019-11-29 16:03:07

There were a few typos and things, but I think this is what you want:

# Examplified here with 2 outcome variables
outcome1 <- c(2, 4, 6, 8, 10, 12, 14, 16)
outcome2 <- c(1, 2, 3, 4, 5, 6, 7, 8)
var1 <- c("a", "a", "a", "a", "b", "b", "b", "b")
var2 <- c(10, 11, 12, 9, 14, 9, 5, 8)
var3 <- c(100, 101, 120, 90, 140, 90, 50, 80)

df <- data.frame(outcome1, outcome2, var1, var2, var3)

dependents <- c("outcome1", "outcome2")

library(lsmeans) #install.packages("lsmeans")

results <- list()
for (i in seq_along(dependents)) {
  eq <- paste(dependents[i],"~ var1 + var2 + var3")
  fit <- lm(as.formula(eq), data= df)
  summary <- summary(lsmeans(fit, "var1"))
  summary$outcome <- i
  results[[i]] <- summary
}

Here is another option using lapply.

dependents <- c('outcome1', 'outcome2')
lst <- lapply(dependents, function(x) {
         fit <- lm(paste(x,'~', 'var1+var2+var3'), data=df)
         summary(lsmeans(fit, 'var1', data=df))})
Map(cbind, lst, outcome = seq_along(dependents))
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!