2014-01-06 4 views
10

Ich habe einen Datenrahmen bekommt, der wie folgt aussieht:Erstellen gute Kable Ausgabe in RStudio

er.frame <- structure(c(0.475, 0.525, 0.45, 0.475, 0.45, 0.55, 0.425, 0.5, 
0.5, 0.4, 0.45, 0.375, 0.55, 0.425, 0.5, 0.475, 0.4, 0.45, 0.375, 
0.55, 0.425), .Dim = c(7L, 3L), .Dimnames = list(NULL, c("CSP.LDA.error.rate", 
"CSP.SWLDA.error.rate", "CSP.SVM.error.rate"))) 

kable(er.frame) 

| CSP.LDA.error.rate| CSP.SWLDA.error.rate| CSP.SVM.error.rate| 
|-------------------:|---------------------:|-------------------:| 
|    0.475|     0.500|    0.500| 
|    0.525|     0.500|    0.475| 
|    0.450|     0.400|    0.400| 
|    0.475|     0.450|    0.450| 
|    0.450|     0.375|    0.375| 
|    0.550|     0.550|    0.550| 
|    0.425|     0.425|    0.425| 

ich haben möchte, dass kable Ausgabe von knitr verarbeitet werden und einen schönen Tisch im HTML-Bericht erstellen . Im Anschluss an der Dokumentation in ?kable, habe ich diesen Schnipsel:

``` {r snippet} 
opts_chunk$set(results='asis') 
kable(er.frame) 
``` 

Mein HTML-Bericht, obwohl, wie von RStudio erzeugt wird, ist nur die Echo-Ausgabe der Konsole (oder gar nichts, wenn ich die Option output=FALSE hinzufügen):

## | CSP.LDA.error.rate| CSP.SWLDA.error.rate| CSP.SVM.error.rate| 
## |-------------------:|---------------------:|-------------------:| 
## |    0.425|     0.400|    0.400| 
## |    0.425|     0.475|    0.500| 
## |    0.400|     0.400|    0.400| 
## |    0.425|     0.425|    0.425| 
## |    0.425|     0.325|    0.275| 
## |    0.350|     0.375|    0.375| 
## |    0.450|     0.425|    0.425| 

die oben ist auch das, was mit begleitenden ``` Begrenzungszeichen in der generierten Datei erscheint Markdown, und es sieht ganz gut, wenn ich die Trennzeichen und die Hashes entfernen.

Wie kann ich mit kable richtig ausgeben? This question's accepted answer hints at it, geht aber nicht so weit wie die Dokumentation.

Übrigens, ich renne R 2.15.1, knitr 1.5.15.

Antwort

12

opts_chunk$set und opts_current$set haben keinen Einfluss auf den Chunk, in dem sie aufgerufen werden.

von ?opts_chunk

Beachten Sie die global in einer Chunk festgelegten Optionen werden nicht die Optionen in diesem Klumpen selbst betreffen, und deshalb haben wir oft globale Optionen in einem separaten Brocken einstellen müssen.

wird die folgende Option arbeiten:

```{r, results = 'asis'} 
kable(er.frame) 
```