我想知道如何在stargazer包中获取自定义模型名称。
model.names
有一个选项,可以设置为TRUE
或FALSE
,但它不支持model.names = c('OLS','2SLS','GLS')
等矢量或名称。
有没有办法覆盖函数以使用作为参数传递的自定义名称而不是从传递的对象中读取模型名称?
答案 0 :(得分:4)
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"))
获取自定义标签和对象名称m1
和m2
。通过使用与您想要的额外模型名称匹配的非标准名称可以有效地滥用它
OLS = m1
`2SLS` = m2
stargazer(OLS, `2SLS`, object.names = TRUE,
column.labels = c("lab 1", "lab 2e"))
虽然不幸的是,反引号包含在输出中。 (作为额外的黑客攻击,您可以capture.output()
并使用gsub
删除它们。
stargazer使用的模型名称不是模型对象的一部分,而是stargazer检查模型对象并尝试提取它们。您可以看到.model.identify
函数on github。您可以尝试fixInNamespace
来调整此值,但我认为事后的黑客行为更容易。