2017-12-06 2 views
1

Ich benutze knit2html, um HTML-Berichte aus R-Code zu generieren.kann nicht bekommen schöne Tabelle mit kable/kableExtra mit knitr2html

Sie haben versucht, kable/kableExtra zu verwenden, um die Tabelle ausgedruckt zu bekommen, scheint aber nicht zu funktionieren.

werde ich dieses einfache Programm verwenden, um zu demonstrieren, alle versuchen, aus der Tabelle drucken ziemlich rohen Druck zu erzeugen, anstatt schönen Ausdruck, wie ich auf einem Teil der Tutorial gesehen (zB https://cran.r-project.org/web/packages/kableExtra/vignettes/awesome_table_in_html.html)

R Programm:

#!/usr/bin/Rscript 

library(data.table) 
library(knitr) 
library(kableExtra) 

test_data=data.table(a=c(1,2,3,4,5), 
        b=rep('a', 5), 
        c=rep(2.0, 5), 
        d=rep('a', 5), 
        e=rep(2.0, 5), 
        f=rep('a', 5), 
        g=rep(2.0, 5)) 

knit2html('test.Rmd') 

Rmd Datei:

```{r testprint1, echo=FALSE} 
test_data 
``` 
```{r testprint2, echo=FALSE} 
kable(test_data) 
``` 
```{r testprint3, echo=FALSE} 
test_data %>% kable("html") 
```     
```{r testprint4, echo=FALSE} 
test_data %>% kable("html") %>% kable_styling() 
```     

Ein Screen-Capture Ergebnis html:

enter image description here

Fehle ich hier etwas?

Antwort

0

Verwenden rmarkdown::render() statt knitr::knit2html(). Letzteres hätte schon lange im Ruhestand sein sollen und existiert nur noch aus historischen Gründen. Insbesondere ruft rmarkdown::render() Pandoc zum Konvertieren der Markdown-Ausgabe auf, und knitr::knit2html() ruft das Markdown-Paket auf. Weitere Informationen finden Sie unter this article.

+0

Dank Yihui, die funktionierte. Kannst du meine Antwort auf die Frage sehen (es war zu lang, um in einen Kommentar getippt zu werden). Daraus entstand eine Frage, wie man den Speicherort der Ausgabe-/Zwischendateien von render() steuert ... – mochajave

+1

Wenn es funktioniert, akzeptieren Sie die Antwort, indem Sie auf das grüne Häkchen klicken. Wenn Sie eine neue Frage haben, schreiben Sie einfach eine neue Frage. Bitte fragen Sie nicht unter der gleichen Frage. –

0

VielleichtBootstrap nicht bringen?

Wenn Sie von dem Abschlag machen sich, Sie die Tabelle aus kable_styling erhalten:

```{r echo=FALSE} 
library(data.table) 
library(knitr) 
library(kableExtra) 

test_data=data.table(a=c(1,2,3,4,5), 
        b=rep('a', 5), 
        c=rep(2.0, 5), 
        d=rep('a', 5), 
        e=rep(2.0, 5), 
        f=rep('a', 5), 
        g=rep(2.0, 5)) 
``` 

```{r testprint1, echo=FALSE} 
test_data 
``` 
```{r testprint2, echo=FALSE} 
kable(test_data) 
``` 
```{r testprint3, echo=FALSE} 
test_data %>% kable("html") 
```     
```{r testprint4, echo=FALSE} 
test_data %>% kable("html") %>% kable_styling() 
```