2016-09-22 28 views
5

Rmarkdown ve lateks ile ilgili bir rapor çalışıyorum. knitr::kable kullanarak bir grup tablo yazdırmam gerekiyor, ancak for döngüsünde yazdırmayın. R: Neden kable bir for döngüsü içinde yazdırmıyor?

Bu

kodum: Ben results = "asis" kullanırsanız ya da ben tümüyle atlarsanız

--- 
title: "project title" 
author: "Mr. Author" 
date: "2016-08-30" 
output: 
    pdf_document: 
    latex_engine: xelatex 
bibliography: biblio.bib 
header-includes: 
    - \usepackage{tcolorbox} 
--- 

Text and chunks that run ok. 

```{r loadLibraries} 
require(data.table) 
require(knitr) 
``` 

## Try to print a group of tables from split 

```{r results = "asis"} 
t1 <- data.table(a = sample(letters, 10, T), b = sample(LETTERS[1:3], 10, T)) 
t2 <- split(t1, t1$b) 

for (i in 1:length(t2)){ 
    kable(t2[[i]], col.names = c("A", "B")) 
} 
``` 

farketmez, belgenin için hiçbir şey yazdırır.

bir print çağrısı (print(kable(t2[[i]]...) içinde kable çağrı çevreleyen denedik ve başarılı bir belgeye çıktıyı baskı, fakat biçim (örneğin, ## ile birlikte) bir standart R istemi aynı biçimidir oldukça çirkin.

Tabloları el ile dışında nasıl görüntüleyebilirim? Bazı answerers yinelenen bir cevap olarak R knitr print in a loop beni yönlendirildi

### DÜZENLEME ###. değil, çünkü önceki paragrafta belirtildiği gibi, bu tablo etkili bir şekilde yazdırır, ancak biçim beklenen bir değil. Kabul edilen cevap (ve ilgili github ipliği) sorunu gerçekten çözdü.

+0

Diğer Her baskı çağrısından sonra bir satır atlar hile yapar. Bunu denediğinizde, "results =" asis "ı ayarlamayı unuttuğunuzu varsayalım. –

+0

Olası yinelenen [Bir döngüde R knitr baskı] (http://stackoverflow.com/questions/28313600/r-knitr-print-in-a-loop) –

cevap

5

Bu soru burada ele alınmaktadır: https://github.com/yihui/knitr/issues/886

Tek ihtiyacınız Eğer ikinci-en son paragrafta, `print` çağrısında tarif daha

--- 
title: "project title" 
author: "Mr. Author" 
date: "2016-08-30" 
output: 
    pdf_document: 
    latex_engine: xelatex 
    bibliography: biblio.bib 
    header-includes: 
     - \usepackage{tcolorbox} 
--- 

Text and chunks that run ok. 

```{r loadLibraries} 
require(data.table) 
require(knitr) 
``` 

```{r results = "asis"} 
t1 <- data.table(a = sample(letters, 10, T), b = sample(LETTERS[1:3], 10, T)) 
t2 <- split(t1, t1$b) 

for (i in 1:length(t2)){ 
    print(kable(t2[[i]], col.names = c("A", "B"))) 
    cat("\n") 
} 
``` 
+1

2014'teki durum hakkında bilmiyorum ama günümüzde "kedi" gerekli değildir. Sadece sorudaki kodda eksik olan 'print' ifadesidir. –

İlgili konular