结合texreg,knitr,booktabs和dcolumn

Maa*_*lli 6 latex r texreg

我正在尝试使用RStudio和编译LaTeX报告knitr。我很难获取软件包booktabsdcolumn使用我texreg生成的表。

例如,在示例中,我尝试重新创建表2 :。

我作为.Rnw文件的尝试如下:

\documentclass{article}

\usepackage{booktabs}
\usepackage{dcolumn}

<<setup, include=FALSE >>=
library(texreg)
 @


\begin{document}

<<analysis, include=FALSE>>=
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
weight <- c(ctl, trt)
m1 <- lm(weight ~ group)
m2 <- lm(weight ~ group - 1) # omitting intercept
@

<<table, results='asis'>>=
texreg(m2)
@


\end{document}
Run Code Online (Sandbox Code Playgroud)

但是,生成的LaTex表(下面)既不包含booktabs水平线也不包含dcolumn路线。如何合并它们?非常感谢您的帮助!

\begin{table}
\begin{center}
\begin{tabular}{l c }
\hline
           & Model 1 \\
\hline
groupCtl   & $5.03^{***}$ \\
           & $(0.22)$     \\
groupTrt   & $4.66^{***}$ \\
           & $(0.22)$     \\
\hline
R$^2$      & 0.98         \\
Adj. R$^2$ & 0.98         \\
Num. obs.  & 20           \\
\hline
\multicolumn{2}{l}{\scriptsize{$^{***}p<0.001$, $^{**}p<0.01$, $^*p<0.05$}}
\end{tabular}
\caption{Statistical models}
\label{table:coefficients}
\end{center}
\end{table}
Run Code Online (Sandbox Code Playgroud)

小智 5

澄清一下:Robert 解决方案中的关键部分是参数,use.packages=FALSE而不是将代码分成两块。

原因如下:您texreg()现在调用的方式使其在生成的 tex 输出中包含以下内容:

\usepackage{booktabs}
\usepackage{dcolumn}
Run Code Online (Sandbox Code Playgroud)

将输出保存在一个对象中然后使用cat()并不能解决这个问题。

你不能\usepackage()' outside the preamble. Knitr still compiles a PDF but apparently this use of在文档正文中使用\usepackage{}' 搞砸 booktabs 和 dcolumn 的使用,即使你已经在序言中加载了它们。

添加参数use.packages=FALSEin texreg()- 如果设置为 FALSE,则输出中将省略 use 包语句。自己将使用包语句写入文档的序言中,您将拥有带有书签和对齐数字的回归表。