R / Sweave / Latex - 将评论放在表格中(xtable)

时间:2013-11-11 10:31:08

标签: r latex sweave xtable

我在LaTeX中使用R和sweave创建了一个表。一个特殊的例子:

\documentclass{article}
\begin{document}
\SweaveOpts{concordance=TRUE}

<<label=tab1, echo=FALSE, results=tex>>=
library(xtable)
employee <- c('John Doe','Peter Gynn','Jolie Hope')
salary <- c(21000, 23400, 26800)
mData <- data.frame(employee, salary) 
print(xtable(mData, caption = "Salary", align="ccc"), caption.placement="top", hline.after = c(c(-1, 0), nrow(mData)), include.rownames=FALSE) 
@

\end{document}

表的基本LaTeX结构是

\begin{table}
\begin{tabular}{cc}
...
\end{tabular}
\end{table}

为了节省很多工作,我使用R中的print和xtable函数在LaTeX中创建表代码。但现在我想在\ end {tabular}和\ end {table}语句之间添加一些文本。 print函数中的add.to.row参数没有帮助,因为语句只放在\ end {tabular}之前。我该如何解决这个问题?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

执行此操作的方法是使用xtable,删除表环境 floating = FALSE 并打包threeparttable

\documentclass{article}
\usepackage[para,online,flushleft]{threeparttable}
\begin{document}
\SweaveOpts{concordance=TRUE}

<<label=tab1, echo=FALSE, results=tex>>=
library(xtable)
employee <- c('John Doe','Peter Gynn','Jolie Hope')
salary <- c(21000, 23400, 26800)
mData <- data.frame(employee, salary) 
options(xtable.comment = FALSE)
xt<-xtable(mData, caption = "Salary", align="ccc") 
print(xt,floating = FALSE,
    caption.placement="top",
    hline.after = c(c(-1, 0), nrow(mData)),
    include.rownames=FALSE,
    file="test.tex"
    )
@


\begin{table}[h]
\caption{A table with notes in the end}
  \begin{center}
     \begin{threeparttable}
       % INPUT YOUR TEX HERE :
       \input{test.tex}
     \begin{tablenotes}
       \item[1] aaaa; \item[2] bbbb
     \end{tablenotes}
    \end{threeparttable}
   \end{center}
 \label{table:tablewithnotes}
 \end{table}     
\end{document}`enter code here

Table output