gpt4 book ai didi

r - 使用 lapply 拟合多个模型——如何在 lm 对象中保持模型公式自包含

转载 作者:行者123 更新时间:2023-12-03 20:18:09 28 4
gpt4 key购买 nike

以下代码将 4 个不同的模型公式拟合到 mtcars数据集,使用 for 循环或 lapply。在这两种情况下,存储在结果中的公式都称为 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)

有没有办法让完整的、可读的公式显示在结果中?

最佳答案

这应该有效

lapply(formulas, function(x, data) eval(bquote(lm(.(x),data))), data=mtcars)
它返回
[[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
我们使用 bquote将公式插入到 lm 的调用中然后计算表达式。

关于r - 使用 lapply 拟合多个模型——如何在 lm 对象中保持模型公式自包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25312818/

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