R / Sweave / Latex - Разместить комментарий в таблице (xtable)

Я создал таблицу с помощью R и развернул в LaTeX. Простой пример:

\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}

Чтобы сэкономить мне много работы, я использую функции print и xtable в R для создания кода таблицы в LaTeX. Но теперь я хочу добавить текст между операторами \ end {tabular} и \ end {table}. Аргумент add.to.row в функции печати не помогает, поскольку операторы помещаются только перед \ end {tabular}. Как я могу решить эту проблему?

Заранее большое спасибо за вашу помощь.


person user2978547    schedule 11.11.2013    source источник
comment
Я бы просто отредактировал объект xtable - сохранил его в переменной и вставил желаемый текст между табличной и табличной средами.   -  person Roman Luštrik    schedule 11.11.2013


Ответы (1)


Чтобы сделать это, используйте xtable, удалите окружение таблицы float = 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

Вывод таблицы

person Cedric    schedule 29.10.2017