Stargazer包中的自定义模型名称(针对R语言)

7

我想知道如何在R的stargazer包中获取自定义模型名称。

有一个model.names选项,可以设置为TRUEFALSE,但它不支持向量或名称,例如model.names = c('OLS','2SLS','GLS')

有没有办法覆盖函数,使用作为参数传递的自定义名称而不是从传递的对象中读取模型名称?


虽然不是您要求的解决方案,但最快捷的方法可能是将您的模型命名为所需的标签。您可以使用反引号来表示非标准名称(例如 \2SLS` <- model_2`)。 - Gregor Thomas
请问您能澄清一下这个语法(重命名模型)吗?我指的不是反引号,而是修改 lm() 对象中模型名称的方式。谢谢! - Nicolas
可能是Stargazer:使用模型名称而不是数字?的重复问题。 - scoa
1个回答

8
星空观察者(Stargazer)可选包括对象名称,因此如果您的模型中有命名对象,则可以在输出中看到它们。
m1 = lm(mpg ~ wt, data = mtcars)
m2 = lm(mpg ~ wt + disp, data = mtcars)

您可以这样做

stargazer(m1, m2, object.names = TRUE,
          column.labels = c("lab 1", "lab 2e"))

为了同时获取自定义标签和对象名称,需要使用m1m2。可以有效地通过使用与所需的额外模型名称匹配的非标准名称来滥用此功能。

OLS = m1
`2SLS` = m2
    stargazer(OLS, `2SLS`, object.names = TRUE,
              column.labels = c("lab 1", "lab 2e"))

不幸的是,反引号包含在输出中。(作为额外的技巧,你可以用capture.output() 捕获输出,并使用 gsub 删除它们)。

stargazer 使用的模型名称不是模型对象的一部分,而是检查模型对象并尝试提取它们。您可以在github 上看到.model.identify 函数。 您可以尝试使用fixInNamespace来进行调整,但我认为后期修改更容易一些。


谢谢,我想capture.output()方法是正确的选择! - Nicolas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接