【发布时间】:2016-08-15 23:35:50
【问题描述】:
在rmarkdown 文档中,我正在创建一个包含标准误差的回归系数的 Latex 表,以比较单个表中的多个回归模型。我想垂直对齐每个模型的系数,以便系数的小数点垂直排列在一列。
我正在使用texreg 创建表。默认情况下,系数不是小数对齐的(相反,每个字符串都在其列中居中),我正在寻找一种方法来让系数小数对齐。我不喜欢texreg,所以如果您有使用xtable、pander、stargazer 或任何其他方法的解决方案,我也会对此感兴趣。理想情况下,我想要一个可以在rmarkdown 文档中以编程方式实现的解决方案,而不是在将文档呈现为.tex 文件后调整latex 标记。
作为奖励,我还希望能够在表格标题中添加换行符。例如,在texreg 中,您可以使用custom.model.names 参数来设置每个回归模型的列名。在下面的示例中,我希望将"Add Horsepower and AM" 分成两行,这样列就不需要那么宽了。我试过"Add Horsepower \newline and AM",但这只是在最后的列标题中添加了“ewline”,而“\n”被忽略了。
这是一个可重现的例子:
---
title: "Regression Table"
author: "eipi10"
date: "August 15, 2016"
header-includes:
- \usepackage{dcolumn}
output: pdf_document
---
```{r, echo=FALSE, message=FALSE, results="asis"}
library(texreg)
m1 = glm(mpg ~ wt + factor(cyl), data=mtcars)
m2 = glm(mpg ~ wt + factor(cyl) + hp + factor(am), data=mtcars)
texreg(list(m1,m2),
single.row=TRUE,
custom.model.names=c("Base Model", "Add Horsepower and AM"),
custom.coef.names=c("Intercept", "Weight","Cyl: 6", "Cyl: 8", "Horsepower","AM: 1"))
```
输出表如下所示:
【问题讨论】:
-
您在插入换行符时可能需要一些额外的反斜杠,例如
"\\newline" -
那也行不通。我得到“添加马力和 AM”。我还尝试了`\\`,它只是在“Horsepower”和“and”之间添加了一个额外的空格。
-
嗯,开始在 tex.stackexchange.com 中查找,但没有走那么远。
-
你试过
dcolumn = TRUE参数吗?这使用dcolumn包提供小数点对齐。您可能希望将它与参数use.packages = FALSE结合使用,以避免在表浮动之前出现任何前导命令。这些都记录在帮助文件和 JSS 文章中。 -
我用这个方法
! Misplaced \noalign. \hline ->\noalign {\ifnum 0=`}\fi \hrule \@height \arrayrulewidth \futurelet... l.403 D\{)\}\{)\}\{11)3\} \} \hline得到一个Pandoc错误。
标签: r latex regression r-markdown texreg