Как вводить значения из фрейма непосредственно в обработку латексного pdf

У меня есть следующий код в Rstudio-Sweave, который создает простую таблицу:

\documentclass{article}

\begin{document}
\SweaveOpts{concordance=TRUE}
\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline
5  & 6  & 11 & 22 & 33 & 44 & 55 & 55 & \multicolumn{4}{l|}{name1} & 66 & 777 & 888 \\ \hline
v1 & v2 & v3 & v4 & v5 & v6 & v7 & v8 & \multicolumn{4}{l|}{name2} & v9 & v10 & v11 \\ \hline
\end{tabular}
\end{table}



\end{document}

Как мне отредактировать код так, чтобы значения "5", "6", "v1" - "v11" и т. Д. Принимали значения непосредственно из data.frame, который я уже создал. Например, если у меня есть датафрейм с именем "DATAFRAME", возможно ли сделать что-то подобное (это не работает), но наверняка есть что-то простое, подобное этому, которое можно сделать?

\documentclass{article}

\begin{document}
\SweaveOpts{concordance=TRUE}
\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline
DATAFRAME[1,1]  & 6  & 11 & 22 & 33 & 44 & 55 & 55 & \multicolumn{4}{l|}{name1} & 66 & 777 & 888 \\ \hline
v1 & v2 & v3 & DATAFRAME[4,4] & v5 & v6 & v7 & v8 & \multicolumn{4}{l|}{DATAFRAME[4,5]} & v9 & v10 & v11 \\ \hline
\end{tabular}
\end{table}



\end{document}

Где я заменил значения в таблице на значения, взятые динамически из фрейма данных - это можно сделать?

1 ответ

Решение

Попробуйте использовать \Sexpr{DATAFRAME[1,1]}, \Sexpr{DATAFRAME[4,4]}и т. д. Это будет извлекать значения, указанные вами из кадра данных. Однако, если вы пытаетесь создать целую таблицу за раз, определенно посмотрите на варианты в knitr а также xtable упомянутые Кристоферсен и Имо. Гораздо проще, чем повторять \Sexpr{} звонки.

Изменить: попробуйте следующий код, чтобы увидеть, работает ли это на вашем компьютере. Я просто установил, чтобы использовать случайный набор данных для DATAFRAME.

\documentclass{article}

\begin{document}

<<data, echo = FALSE>>=
set.seed(100)
DATAFRAME <- data.frame(round(rnorm(n = 10),2),
                        round(rnorm(n = 10),2),
                        round(rnorm(n = 10),2),
                        round(rnorm(n = 10),2),
                        round(rnorm(n = 10),2))
@

\SweaveOpts{concordance=TRUE}
\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline
\Sexpr{DATAFRAME[1,1]}  & 6  & 11 & 22 & 33 & 44 & 55 & 55 & \multicolumn{4}{l|}{name1} & 66 & 777 & 888 \\ \hline
v1 & v2 & v3 & \Sexpr{DATAFRAME[4,4]} & v5 & v6 & v7 & v8 & \multicolumn{4}{l|}{\Sexpr{DATAFRAME[4,5]}} & v9 & v10 & v11 \\ \hline
\end{tabular}
\end{table}

\end{document}
Другие вопросы по тегам