2013-02-14 11 views
16

Ich verwende xtable, um Tabellen aus R automatisch zu kompilieren, während ich mein TeX-Dokument kompiliere. Die Frage, die ich habe, ist, wie ich die Variablennamen in der Tabelle (die in meinem Fall die Spaltennamen in einem Datenrahmen sind) in den mathematischen Modus bringen soll. Ich habe meine Ergebnisse in den Datenrahmen adf.results gespeichert, und im Wesentlichen, was ich will istVerwenden von XTable mit R und Latex, Math-Modus in Spaltennamen?

colnames(adf.results) <- c(" ", "$m^r_t$", "$\delta p_t$", 
          "$R^r_t$", "$R^b_t$", "$y^r_t$") 

aber das fügt einfach $m^r_t$ ... wie die Spaltennamen, ohne sie als im Mathematik-Modus zu interpretieren. Hat jemand eine Lösung?

Antwort

29

wie in der xtable gallery Vignette vorgeschlagen, sollten Sie eine Desinfektionsfunktion verwenden (wie unikum auch vorgeschlagen). Nur einige Dummy-Code, wie ich es mit Ihrem Beispiel arbeiten:

library(xtable) 
adf.results<-matrix(0,ncol=6,nrow=4) 
colnames(adf.results) <- c(" ", "$m^r_t$", "$\\delta p_t$","$R^r_t$", "$R^b_t$", "$y^r_t$") 
print(xtable(adf.results),sanitize.text.function=function(x){x}) 

Viel Glück mit ihm.

Mit freundlichen Grüßen

FM

+0

Wissen Sie, warum diese sanitization Funktion funktioniert? Es nimmt ein Argument 'x' und gibt' x' zurück. – Heisenberg

+0

das ist in der Tat eine faszinierende Frage. Das Ausführen von xtable ohne eine benutzerdefinierte 'sanitize.text.function' (dh mit' ggetOption ("xtable.sanitize.text.function") 'das Zurückgeben von' NULL') wird das Standardverhalten von 'print.xtable' auslösen, das alle entfernen soll Zeichen, die im Ausgabeformat eine besondere Bedeutung haben. Natürlich wollen wir in diesem Fall genau diese Zeichen behalten und sie als TeX auswerten. Daher die saumlos nutzlose Funktionsdefinition. –

5

Bitte beachten Sie xtable gallery: Desinfektion Abschnitt (Seite 7 und darunter).

Verwandte Themen