2

我使用 R 创建了一个表格,并在 LaTeX 中 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} 之前。我怎么解决这个问题?

非常感谢您的帮助。

4

1 回答 1

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

表输出

于 2017-10-29T20:17:25.127 回答