为什么 stargazer 会为这两个模型生成不同的因变量标签?

Why does stargazer produce different dependent variable labels for these two models?

我想知道是否有人可以告诉我为什么 stargazer 为以下两个模型制作了不同的因变量标签:

j <- "hp"
i <- "cyl"

lm1 <- lm(paste(j, "~", i), mtcars)
stargazer(lm1, header = FALSE, type = "text")

产生因变量j

鉴于:

model <- paste(j, "~", i)
lm2 <- lm(model, mtcars)
stargazer(lm2, header = FALSE, type = "text")

产生正确的因变量hp

似乎 stargazer 从模型的 call 属性中选取因变量标签,因此当执行内部代码 (https://github.com/cran/stargazer/blob/master/R/stargazer-internal.R) 的第 51 行时,它读取 j 而不是 hp

您可以看到,如果您将 call 属性从 lm2 复制到 lm1,现在您可以得到它:

lm1$call <- lm2$call
stargazer(lm1, header = FALSE, type = "text")