2016-12-07 63 views
1

我在Rstudio-Sweave下面的代碼產生一個簡單的表:如何從數據幀輸入值直接進入sweave膠乳PDF處理

\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

我認爲knitr :: kable()會給你你想要的。它輸出一個降價格式表 – Kristofersen

+0

'xtable'軟件包也可以完成這項工作,並有許多格式化選項。 – lmo

回答

0

嘗試使用\Sexpr{DATAFRAME[1,1]},\Sexpr{DATAFRAME[4,4]}等。這將拉動您從數據框中指定的值。但是,如果您想要同時製作一張整桌,請務必查看Kristofersen和Imo提到的knitrxtable中的選項。比重複撥打\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} 
+0

說錯誤:「錯誤:在temp.Rnw:12,對象'DATAFRAME'找不到」?在編譯階段 – Tammboy

+0

您的數據幀實際上是否命名爲DATAFRAME?或者,這正是您在問題中用作示例的內容?如果它與DATAFRAME不同,請確保它與您的數據框的名稱相匹配。 – Sam

+0

不,我得到了那一點 - 它確實匹配 – Tammboy