gpt4 book ai didi

r - lapply 估计许多因变量,然后用 Stargazer 制表

转载 作者:行者123 更新时间:2023-12-04 03:02:24 25 4
gpt4 key购买 nike

我正在尝试:(1) 估计只有因变量发生变化的多个模型 (2) 使用 Stargazer 包将结果制表

以下代码有效,但我必须为每个模型重复一行代码:

    library(stargazer)
data(mtcars)

reg1 <- lm(mpg ~ am + gear + carb, data=mtcars)
reg2 <- lm(cyl ~ am + gear + carb, data=mtcars)
reg3 <- lm(disp ~ am + gear + carb, data=mtcars)

stargazer(reg1, reg2, reg3,
title="Regression Results", type="text",
df=FALSE, digits=3)

您可以看到(修剪后的)输出具有因变量(mpg、cyl、disp)的正确标题:

Regression Results
==================================================
Dependent variable:
------------------------------
mpg cyl disp
(1) (2) (3)
--------------------------------------------------
am 3.545* -0.176 -40.223
(1.897) (0.615) (48.081)

如果我使用 lapply 和 paste,它最终会改变 stargazer 中因变量的标题:

dependents <- c('mpg', 'cyl', 'disp')
outs <- lapply(dependents, function(x) {
fit <- lm(paste(x,'~', 'am + gear + carb'), data=mtcars)})

stargazer(outs[[1]], outs[[2]], outs[[3]],
title="Regression Results", type="text",
df=FALSE, digits=3)

给出输出,其中 x 是因变量的标题:

Regression Results
==================================================
Dependent variable:
------------------------------
x
(1) (2) (3)
--------------------------------------------------
am 3.545* -0.176 -40.223
(1.897) (0.615) (48.081)

有什么办法可以解决这个问题吗?谢谢。

最佳答案

如果您在运行回归之前创建公式,它应该可以工作。我只是将公式创建和回归分开。

dependents <- c('mpg', 'cyl', 'disp')
outs <- lapply(dependents, function(x) {
formula <- as.formula(paste(x,'~', 'am + gear + carb'))
fit <- lm(formula, data=mtcars)})

stargazer(outs[[1]], outs[[2]], outs[[3]],
title="Regression Results", type="text",
df=FALSE, digits=3)

关于r - lapply 估计许多因变量,然后用 Stargazer 制表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47955087/

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