【问题标题】:Each xtable produced in R-loops should have \begin{table}..\end{table} environment in Sweave在 R 循环中生成的每个 xtable 都应该在 Sweave 中具有 \begin{table}..\end{table} 环境
【发布时间】:2015-01-23 17:17:04
【问题描述】:

我尝试编写一个循环生成 xtables 的 R 函数。稍后我想在 Sweave 文档中调用我的函数,但单个块不能支持多个表。我必须将每个表放在一个块中并用乳胶代码 \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(...)
@

【问题讨论】:

    标签: loops knitr xtable


    【解决方案1】:

    我对你的问题感到困惑。 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() 的输出)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多