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

为什么stargazer会为这两个模型生成不同的因变量标签?,r,stargazer,R,Stargazer,我想知道是否有人能告诉我为什么stargazer为以下两种型号生产不同的因变量标签: j <- "hp" i <- "cyl" lm1 <- lm(paste(j, "~", i), mtcars) stargazer(lm1, header = FALSE, type = "text") j似乎stargazer从模型的call属性中选择因变量标签,因此当执行内部代码()的第51行时,它将读取j,而不是hp 您可以看到,如果您将调用atribute从lm2复制到lm1,现

我想知道是否有人能告诉我为什么stargazer为以下两种型号生产不同的因变量标签:

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

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

j似乎
stargazer
从模型的
call
属性中选择因变量标签,因此当执行内部代码()的第51行时,它将读取
j
,而不是
hp

您可以看到,如果您将
调用
atribute从lm2复制到lm1,现在您可以得到它:

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

lm1$call我怀疑这与非标准评估有关。即使您尝试
as.formula(粘贴(j,~”,i))
在变量调用中,您会得到
j
。为此,我最喜欢的函数是
重新格式化
重新格式化(i,response=j)
将为您构造公式。
lm1$call <- lm2$call
stargazer(lm1, header = FALSE, type = "text")