2

データセットを取り、単純なデータ ディクショナリを生成する brew テンプレートを作成しようとしています。

変数の名前とその変数の頻度表を含む別のページが必要なので、これまでにこれを書いています:

頻度表を返す R 関数:

#produce frequency table, in vector, out dataframe
procfreq<-function(x) {
  #find frequencies
  temp<-as.data.frame(table(x))
  #generate percents
  temp[,3]<-temp[,2]/sum(temp[,2])
  #name columns
  names(temp)<-c("Values","Frequencies","Percent")
  return(temp)
}

次に、Brew ループで関数を適用します。

  <% for (i in seq_along(names(testData))) { -%>
  \pagebreak
  <%= cat("\\section{",names(testData)[i],"}",sep="") %>
  <%= xtable(procfreq(testData[,i]),names(testData)[i],names(testData)[i]) %> 
  \clearpage
<% } -%>

「cat(list(...),file,sep,fill,labels,append): 引数 1 (タイプ 'list') は 'cat' で処理できません」というエラーが表示されます

私はこれが<%= xtable(procfreq(testData[,i]),names(testData)[i],names(testData)[i]) %>ステートメントから来ていることを知っており、それをラップするとエラーは消えますprint(xtable(procfreq(testData[,i]),names(testData)[i],names(testData)[i])) しかし、何らかの理由で各テーブルのxtable LaTeX出力を2回取得するようになりました。余分なテーブルを手動で削除すると目的が無効になるため、これは大きな問題ですレポートの自動化。

https://learnr.wordpress.com/2009/09/09/brew-creating-repetitive-reports/#X12を見た後 、同じ print(xtable(...) を使用しているように見える include_tbl 関数を使用してみました)私はすでに使用していた概念であり、xtable LaTeX出力が各ループで2回表示されるという同じ問題が発生します。

この記事は 6 年前に書かれたものなので、それ以降 R の何かが変更され、それが例の機能に影響を与えていると思います。

私が知る限り、Brew テンプレートが R テーブルを複製せずに使用する方法はありません。これはおそらく真実ではありません。

最後に、私のセッション情報:

R version 3.2.1 (2015-06-18)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.10.4 (Yosemite)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] tools     stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] xtable_1.7-4    rmarkdown_0.7   rapport_0.51    yaml_2.1.13     plyr_1.8.3      pander_0.5.2    markdown_0.7.7  lattice_0.20-33
 [9] knitr_1.10.5    ggplot2_1.0.1   foreign_0.8-65  brew_1.0-6     

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.0      reshape_0.8.5    digest_0.6.8     MASS_7.3-43      grid_3.2.1       gtable_0.1.2     magrittr_1.5     scales_0.2.5    
 [9] stringi_0.5-5    reshape2_1.4.1   proto_0.3-10     stringr_1.0.0    munsell_0.4.2    colorspace_1.2-6 htmltools_0.2.6 
4

2 に答える 2

2

問題は、xtable の出力が猫に与えるのではなく、印刷することを意図していることだと思います。これはうまくいくようです、

procfreq<-function(x) {
  #find frequencies
  temp<-as.data.frame(table(x))
  #generate percents
  temp[,3]<-temp[,2]/sum(temp[,2])
  #name columns
  names(temp)<-c("Values","Frequencies","Percent")
  return(temp)
}

library(xtable)
<% for (i in seq_along(names(iris))) { -%>
  \pagebreak
<%= cat("\\section{",names(iris)[i],"}",sep="") %>
  <% print(xtable(procfreq(iris[,i]),names(iris)[i],names(iris)[i])) %> 
  \clearpage
<% } -%>

magrittr/brew が混乱する前に、いくつのスペースを削除できるのだろうか。

于 2015-08-01T01:35:45.967 に答える
1

質問にpanderタグが付いているので、改善された機能を使用して回答を投稿させてくださいbrew。レポート テンプレート ファイルの内容:

<% for (varname in
        tail(names(mtcars), 4)) { # start looping %>

## <%= varname %>

<%= ## results will be automatically passed to `pander`
rapportools::rp.freq(varname, mtcars)
%>

<% }                              # end loop %>

そして、次の方法で醸造しpander::Pandoc:brewます:

> Pandoc.brew('demo.brew')

## vs

--------------------------------------
 vs    N    %     Cumul. N   Cumul. % 
----- --- ------ ---------- ----------
  0   18  56.25      18       56.25   

  1   14  43.75      32       100.00  

Total 32  100.00     32       100.00  
--------------------------------------

## am

---------------------------------------
 am    N     %     Cumul. N   Cumul. % 
----- --- ------- ---------- ----------
  0   19  59.375      19       59.375  

  1   13  40.625      32      100.000  

Total 32  100.000     32      100.000  
---------------------------------------

## gear

----------------------------------------
 gear   N     %     Cumul. N   Cumul. % 
------ --- ------- ---------- ----------
  3    15  46.875      15       46.875  

  4    12  37.500      27       84.375  

  5     5  15.625      32      100.000  

Total  32  100.000     32      100.000  
----------------------------------------

## carb

----------------------------------------
 carb   N     %     Cumul. N   Cumul. % 
------ --- ------- ---------- ----------
  1     7  21.875      7        21.875  

  2    10  31.250      17       53.125  

  3     3   9.375      20       62.500  

  4    10  31.250      30       93.750  

  6     1   3.125      31       96.875  

  8     1   3.125      32      100.000  

Total  32  100.000     32      100.000  
----------------------------------------
于 2015-08-01T03:34:07.620 に答える