R-loops 中产生的每个 xtable 在 Sweave 中应该有 \begin{table}..\end{table} 环境

Each xtable produced in R-loops should have \begin{table}..\end{table} environment in Sweave

我尝试编写一个在循环中生成 xtables 的 R 函数。后来我想在 Sweave 文档中调用我的函数 - 但单个块不能支持多个 tables。我必须将每个 table 放在一个块中并用 Latex 代码 \begin{table} ... \end{table}. 所以我想知道,是否有可能以某种方式从 R 函数的循环中调用 Sweave/knitr 并添加 \begin{table} .. \end{ table} 围绕每个 xtable? 或者是否有可能以某种方式将循环中的每个 xtable 发送到 \begin{table} ... \end{table}环境?

我的函数的一个小例子:

multiple_tables_Loop<-function(...){

(....) ##Some necessary calculations to produce a data frame

  for(j in 1:m){
    for(i in 1:n){

      a<-data.frame(...)   

      table<-xtable(a)

      print(table)
     } 
   }
 }

在 Sweave 中我会调用函数:

<<Hallo_Table,results='aisis'>>
 multiple_tables_Loop(...)
@

我对你的问题感到困惑。 xtable 确实包括 \begin{table}/\end{table} 对。你可以把多个表是一个代码块(对于 Sweave 和 knitr .Rnw 文件)。难道只是你在块头中拼错了 'asis'

显示 xtable 确实包括 \begin{table}/\end{table}:

> xtable(data.frame(x=1))
% latex table generated in R 3.1.2 by xtable 1.7-4 package
% Fri Jan 23 11:12:47 2015
\begin{table}[ht]
\centering
\begin{tabular}{rr}
  \hline
 & x \ 
  \hline
1 & 1.00 \ 
   \hline
\end{tabular}
\end{table}

还有一个简单的 .Rnw 文件

<<results="asis">>=
library("xtable")
xtable(data.frame(x=1))
xtable(data.frame(y=1))
@

正确地给出了两个表。

如果拼写错误不是问题,则需要一个完整的最小可重现示例以及 R 和所有包的版本号(sessionInfo() 的输出)