Я использую xtable с R Markdown и knitr для создания файлов .tex, которые я вызываю с помощью \input {}. Отлично работает, но я не понял, как создавать многоколоночные, как показано здесь здесь. Кто-нибудь знает, как к этому?
До сих пор я использую:
tbl <- xtable(data, align="l r r r r r")
colnames(tbl) <- c("Variable",
"Mean", "Std Dev",
"Mean", "Std Dev",
"Difference")
caption(tbl) <- c("Table Title")
print(tbl,
include.rownames=FALSE,
caption.placement="top",
booktabs=TRUE,
type="latex",
file="output.tex")
Я хотел бы иметь другой заголовок группы над каждым "Средним" и "Std Dev" ( "Лечение" и "Контроль" ).
Альтернативно, существует ли лучший способ использования R Markdown/knitr для автоматического создания таблиц? Я не хочу вручную редактировать таблицы, потому что отчет должен генерировать автоматически.
UPDATE: @agstudy: Я новичок в латексе, но я думаю, что это результат, который я хочу создать автоматически с помощью xxtable (или что-то вроде xtable):
\begin{tabular}{lrrrrr}
\toprule
& \multicolumn{2}{c}{Treatment} & \multicolumn{2}{c}{Control} & \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5}
Variable & Mean & Std Dev & Mean & Std Dev & Difference \\
\midrule
var1 & 1 & 2 & 3 & 4 & 5 \\
\bottomrule
\end{tabular}
ОБНОВЛЕНИЕ 2: @Джонатан: мне потребовалось несколько раз прочитать, что вы предлагаете. Я принял вашу рекомендацию, и она сработала.
В блоке R markdown теперь я использую:
tbl <- xtable(data)
print(tbl,
only.contents=TRUE,
include.rownames=FALSE,
type="latex",
digits(tbl) <- c(0,1,1,1,1,1),
file="output/tblout.tex")
Затем в тексте я использую:
\begin{tabular}{lddddd}
\toprule
& \multicolumn{2}{c}{Treatment} & \multicolumn{2}{c}{Control} & \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5}
Variable & \multicolumn{1}{r}{Mean} & \multicolumn{1}{r}{Std Dev} & \multicolumn{1}{r}{Mean} & \multicolumn{1}{r}{Std Dev} & \multicolumn{1}{r}{Difference} \\
\midrule
\input{../output/tblout}
\bottomrule
\end{tabular}
Я посмотрю, есть ли у кого-нибудь другие предложения для собственного решения xxtable (или другого пакета). В противном случае я приму свой ответ. Спасибо!