gpt4 book ai didi

R lm : Create regressions dynamically

转载 作者:行者123 更新时间:2023-12-04 11:20:41 25 4
gpt4 key购买 nike

我有一组因变量 y1, y2, ...., 一组自变量 x1,x2,..., 和一组控制 d1,d2,...。这些都在 data.table 中,我们称它为 data

我需要做一些事情

out1 <- lm(y1 ~ x1, data=data)
out2 <- lm(y1 ~ x1 + d1 + d2, data=data)
....

这当然不是很好,所以我正在考虑编写一个包含所有这些回归的列表,而不是仅仅遍历它。类似的东西

myRegressions <- list('out1' = y1 ~ x1, 'out2' = y1 ~ x1 + d1 + d2)
output <- NULL
for (reg in myRegressions)
{
output[reg] <- lm(myRegressions[[reg]])
}

这当然行不通:我无法构建列表,因为语法在 lm() 之外无效。这里有什么好的方法?

最佳答案

您可以使用paste0as.formula 生成公式,然后简单地将它们放入lm(),例如。 g.

regressors <- c("x1", "x1 + x2", "x1 + x2 + x3")


for (i in 1:length(regressors)) {

print(as.formula(paste0("y1", "~", regressors[i])))
}

这为您提供了公式(已打印)。只需将它们存储在一个列表中,然后使用 lapply 遍历该列表

lapply(stored_formulas, function(x) { lm(x, data=yourData) })

关于R lm : Create regressions dynamically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30013549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com