2015-12-31 6 views
6

Ich drucke Häufigkeitstabellen mit knit::kable und pander::pandoc, und das funktioniert im Allgemeinen gut für HTML/Word/LaTeX-Ausgabe. Aber manchmal möchte ich Dimensionsnamen im Endprodukt erhalten. Leider fallen sowohl pander als auch knitr diese beim Konvertieren in Markdown.Tabellendimnamen in Knitr- oder Pander-Ausgabe beibehalten?

# create a simple table 
tab <- table(mtcars$gear, mtcars$carb) 

# add dimension names 
names(dimnames(tab)) <- c("gear", "carb") 

Dies erzeugt eine Tabelle:

carb 
gear 1 2 3 4 6 8 
    3 3 4 3 5 0 0 
    4 4 4 0 4 0 0 
    5 0 2 0 1 1 1 

Aber jetzt, wenn wir mit, sagen wir, Kable drucken:

> kable(tab) 

| | 1| 2| 3| 4| 6| 8| 
|:--|--:|--:|--:|--:|--:|--:| 
|3 | 3| 4| 3| 5| 0| 0| 
|4 | 4| 4| 0| 4| 0| 0| 
|5 | 0| 2| 0| 1| 1| 1| 

Keine Bemaßungsnamen! (Und ?kable zeigt keine Option an, die sie einschließen würde.)

Irgendwelche Vorschläge für ein Werkzeug, das diese konserviert? Ich habe bemerkt, dass descr:CrossTable den Trick macht, aber enthält eine ganze Menge zusätzlicher Informationen, die ich gerne weglassen würde.

Vielen Dank.

Antwort

5

können Sie zB ftable verwenden eine flache Kontingenztafel die Dimensionsnamen implizit mit zu erstellen:

> pander::pander(ftable(tab)) 

---- ---- - - - - - - 
    carb 1 2 3 4 6 8 

gear     

3  3 4 3 5 0 0 

4  4 4 0 4 0 0 

5  0 2 0 1 1 1 
---- ---- - - - - - - 

Oder Sie können auch die nicht benötigten Zellen aus descr::CrossTable wie unterdrücken:

> pander(descr::CrossTable(tab, prop.r = FALSE, prop.c = FALSE, prop.chisq = FALSE)) 

------------------------------------------------------------------------------ 
&nbsp;\ carb\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ 
    gear  1   2   3   4   6   8  Total 
--------- -------- --------- --------- --------- --------- --------- --------- 
**3**\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ 
    N\  3\  4\  3\  5\  0\  0\   15\ 
Total(%) 9.375% 12.500% 9.375% 15.625% 0.000% 0.000%    

**4**\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ 
    N\  4\  4\  0\  4\  0\  0\   12\ 
Total(%) 12.500% 12.500% 0.000% 12.500% 0.000% 0.000%    

**5**\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ &nbsp;\ 
    N\  0\  2\  0\  1\  1\  1\   5\  
Total(%) 0.000% 6.250% 0.000% 3.125% 3.125% 3.125%    

    Total  7  10   3  10   1   1  32  
------------------------------------------------------------------------------ 

Or senden Sie ein Ticket auf GH :)

+0

Arbeitete perfekt! Das ist so einfach, dass ich nicht glauben kann, dass ich es nicht versucht habe, bevor ich um Hilfe nach SO gekommen bin. Vielen Dank! – ChadBDot

+0

Eine weitere Sache - Ich habe gerade festgestellt, dass die Ausgabe für 'pander :: pander (ftable (tab))' in Ihrer Antwort keine Anführungszeichen um Spalten-, Zeilen- oder Dimensionsnamen enthält. Aber wenn ich denselben Befehl ausführe (Pander 0.6.0 auf R 3.2.2 für OS X 10.11.2), wird alles in Anführungszeichen gesetzt. Irgendeine Idee, wie man das unterdrückt? Danke noch einmal. – ChadBDot

+0

@ChadBDot sollte nicht mit der neuesten Version von 'pander' geschehen - können Sie bitte ein Ticket auf GH einschließlich' devtools :: session_info() 'und ein vollständiges reproduzierbares Beispiel (wie die Zeilen über dem Erstellen von' tab' und dann die 'pander' +' ftable' Anruf? Das wäre sehr hilfreich. – daroczig