Hei*_*erg 3 regression r lapply
以下代码mtcars使用for循环或lapply 将4个不同的模型公式拟合到数据集.在这两种情况下,存储在结果该公式被称为formulas[[1]],formulas[[2]]等等,而不是人类可读的公式.
formulas <- list(
mpg ~ disp,
mpg ~ I(1 / disp),
mpg ~ disp + wt,
mpg ~ I(1 / disp) + wt
)
res <- vector("list", length=length(formulas))
for (i in seq_along(formulas)) {
res[[i]] <- lm(formulas[[i]], data=mtcars)
}
res
lapply(formulas, lm, data=mtcars)
Run Code Online (Sandbox Code Playgroud)
有没有办法让结果中显示完整,可读的公式?
这应该工作
lapply(formulas, function(x, data) eval(bquote(lm(.(x),data))), data=mtcars)
Run Code Online (Sandbox Code Playgroud)
它重新开始了
[[1]]
Call:
lm(formula = mpg ~ disp, data = data)
Coefficients:
(Intercept) disp
29.59985 -0.04122
[[2]]
Call:
lm(formula = mpg ~ I(1/disp), data = data)
Coefficients:
(Intercept) I(1/disp)
10.75 1557.67
....etc
Run Code Online (Sandbox Code Playgroud)
我们使用bquote将公式插入到调用中lm,然后计算表达式.