Estoy mostrando un ejemplo simple aquí solo para formular la pregunta.
\documentclass{article}
\begin{document}
<<>>=
library('ggplot2')
dataset <- diamonds
@
\begin{table}[htbp]
\centering
\begin{tabular}{c|c|c|c}
\textbf{Name} & \textbf{Columns} \\\hline \hline
dataset & \Sexpr{length(colnames(dataset))} \\
\end{tabular}
\caption{Repeated table}
\end{table}
\end{document}
Ahora estoy repitiendo esta tabla (tabla exacta) varias veces en el archivo. (Imagínese reemplazar el conjunto de datos con otro conjunto antes de llamar a esta tabla).
\documentclass{article}
\begin{document}
<<>>=
library('ggplot2')
dataset <- diamonds;
@
\input{table-file.tex}
\end{document}
Estoy poniendo toda la parte tabular en este archivo y luego la ingreso en varios lugares. Pero no puedo hacer que esto funcione. Me preguntaba si esto es posible. Cualquier enfoque mejor para hacer que esta mesa sea "modular".
Gracias
Respuesta1
A continuación se muestra un ejemplo que utiliza el proceso de archivo secundario knitr según la documentación de knitr yihui.name/knitr/demo/child.
Primero el nuevo archivo principal al que llamé 'knitr01.Rnw'
\documentclass{article}
\begin{document}
<<>>=
library('ggplot2')
dataset <- diamonds
@
<<child='child-knitr01.Rnw'>>=
@
<<>>=
dataset<-mtcars
@
<<child='child-knitr01.Rnw'>>=
@
\end{document}
Tenga en cuenta que ingresé al niño dos veces, cada una con un conjunto de datos diferente.
Y el archivo secundario al que llamé 'child-knitr01.Rnw'.
\begin{table}[htbp]
\centering
\begin{tabular}{c|c|c|c}
\textbf{Name} & \textbf{Columns} \\\hline \hline
dataset & \Sexpr{length(colnames(dataset))} \\
\end{tabular}
\caption{Repeated table}
\end{table}
Cuando se ejecuta primero a través de 'knit' y luego a través de 'pdflatex', se obtiene
Para continuar con la demostración para que esté completa, esto también permite que los archivos secundarios ingresen nietos.
El knitr01.Rnw se cambia de la siguiente manera.
\documentclass{article}
\begin{document}
<<>>=
library('ggplot2')
dataset <- diamonds
title="These are diamonds"
@
<<child='child-knitr01.Rnw'>>=
@
<<>>=
dataset<-mtcars
title="These are cars"
@
<<child='child-knitr01.Rnw'>>=
@
\end{document}
Aquí está el archivo 'child-knitr01.Rnw' revisado
\begin{table}[htbp]
\centering
\begin{tabular}{c|c|c|c}
\textbf{Name} & \textbf{Columns} \\\hline \hline
dataset & \Sexpr{length(colnames(dataset))} \\
\end{tabular}
\caption{\Sexpr{paste(substr(capture.output(print(title)),5,50))}}
% The 5 is to remove some leading R stuff (try with 1 to see why)
% The 50 is chosen to be longer than the string
\end{table}
<<child='grand-child-knitr01.Rnw'>>=
@
Y aquí está el archivo 'grand-child-knitr01.Rnw'
Demonstration that you can call on 'grandchildren' files with knitr.
<<>>=
names(dataset)
@
Y la salida es: