Как вводить значения из фрейма непосредственно в обработку латексного 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}