我有以下回归:
fit1 <- lm(y ~ x1, data = data)
fit2 <- lm(y ~ x1 + x2, data = data)
fit3 <- lm(y ~ x3 * x1, data = data)
我想在输出中将解释变量作为顺序(x1,x2,x3,最后是交互)。我尝试以下顺序,但仍然在x1后第二次出现交互。这可能有什么问题?
stargazer(fit1, fit2, fit3, align=TRUE, table.placement="H",omit.stat=c("f", "ser"), order=c("x1", "x2", "x3", "x3:x1"))
答案 0 :(得分:4)
订单状态的帮助文件&#34; order - 正则表达式(或数字索引)的向量,指示变量在输出中出现的顺序&#34;。所以你的字符串被解析为正则表达式,x1匹配x3:x1。你可以做一个数字顺序:
stargazer(fit1, fit2, fit3, align=TRUE,
table.placement="H",omit.stat=c("f", "ser"), order=c(2,3,1,4,5))
答案 1 :(得分:3)
如果您只有几个变量,则数字顺序可以正常工作。如果您经常更改解释变量,则可能需要以自动方式设置顺序。
假设您有一个变量名称向量,已经按正确的顺序排列。您可以将它们转换为&#34;完全匹配正则表达式&#34;:
vars.order <- c("x1", "x2", "x3", "x3:x1")
stargazer(fit1, fit2, fit3, align=TRUE,
table.placement="H",omit.stat=c("f", "ser"), order=paste0("^", vars.order , "$")
到目前为止,这对我有用,但如果变量名称包含特殊字符,则可能会出现一些问题,例如:&#34;。&#34;或&#34; *&#34;。
答案 2 :(得分:0)
如果您也来这里寻找答案,这是我注意到的其他事情:
首先,我同意tino_ladino。如果您有很多变量,则数字排序是不实际的。因此,正确处理RegEx是一件很重要的事情。他的完全匹配注释非常有价值(“ ^ $”),其中^表示项的开头,$表示项的结尾。
但是请注意,如果您的交互变量是分类变量(例如,值是TRUE / FALSE),Stargazer的输出将不会在输出中显示该值,但是要对其进行排序,您需要像在交互项中那样调用它(值,例如ModeratorTRUE)。所以:
lm <- lm(DV ~ IV * Moderator) #Moderator being either TRUE or FALSE
将产生这样的观星输出:
IV
Moderator
IV:ModeratorTRUE
Constant
现在要订购主持人,您不能仅拨打“ ^ Moderator $”
stargazer(lm, type ="latex", out = "file.tex", order = c("^Constant$", "^Moderator$", "^IV:Moderator$"))
它不会像您期望的那样捕获主持人,因为观星者创建的内容似乎与它在内部处理变量的方式不同。要订购它,您需要调用“ ^ ModeratorTRUE $”:
stargazer(lm, type ="latex", out = "file.tex", order = c("^Constant$", "^ModeratorTRUE$", "^IV:Moderator$"))
另一个注意事项:例如,您还可以使用RegEx方式最后,您希望有很多交互项显示在彼此的下方,只需将它们全部用“:”来称呼,当然在这里您不能要求完全匹配(“ ^ $”)
stargazer(lm, type ="latex", out = "file.tex", order = c("^Constant$", "^ModeratorTRUE$", ":"))
如果要将交互作用放在主要效果下,则只能表示变量的结尾。然后,交互将显示在下面,因为采用ModeratorTRUE:IV格式也将适合“ IV $”。在此示例中,仅剩一行就没有意义,但是您明白了。
stargazer(lm, type ="latex", out = "file.tex", order = c("^Constant$", "^ModeratorTRUE$", "IV$"))