我想知道是否有人能告诉我为什么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")