使用不同的因变量重复回归

标签 r loops regression dplyr

我在 Stack 和 google 上搜索了解决方案,但没有找到解决我的问题的方法。

我有大约 40 个因变量,我的目标是获得调整后的均值 (lsmeans)。在考虑了一些协变量后,我需要调整 A 组和 B 组的均值。我的最终对象应该是一个数据框,其中包含 A 组和 B 组所有 40 个因变量的预测平均值。

这是我尝试过的,但没有成功:

# 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) {
    fit <- lm(i ~ var1 + var2 + var3, data= df)
    summary <- summary(lsmeans(fit, "var1"))
    summary$outcome <- i
    results[i] <- summary
    }

最佳答案

这是使用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))

关于使用不同的因变量重复回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31377737/

相关文章:

javascript - 如何迭代 2 个数组并输出共享成员而不导致无限循环

r - lm() : What is qraux returned by QR decomposition in LINPACK/LAPACK

r - 使用tryCatch和rvest处理404等爬行错误

R:使用函数将新列添加到数据框

r - 在向量 (R) 中找出所有可能的和

javascript - 循环遍历数组并将值分配给变量

r - 按相似行折叠数据框

json - 尝试迭代json数组的map时Golang接口(interface)转换错误

python - 如何将多项式回归线拟合到数据

Excel 显示不正确的多项式趋势线函数