我在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}
我用表中的值替换了表中的值,这些值是从数据框中动态获取的 - 可以这样做吗?
答案 0 :(得分:0)
尝试使用\Sexpr{DATAFRAME[1,1]}
,\Sexpr{DATAFRAME[4,4]}
等。这将从数据框中提取您指定的值。但是,如果您要尝试一次制作整个表格,请务必查看Kristofersen和Imo提到的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}