2013-02-14 24 views
16

Używam xtable do kompilowania tabel z R automatycznie podczas kompilowania mojego dokumentu TeX. Mam pytanie, w jaki sposób otrzymuję nazwy zmiennych w tabeli (które w moim przypadku są nazwami kolumn w ramce danych), aby były w trybie matematycznym. Mam przechowywane moje wyniki w adf.results dataframe, a przede wszystkim to, co chcę jestUżywanie XTable z R i Lateksem, tryb matematyczny w nazwach kolumn?

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

ale że po prostu wstawia $m^r_t$ ... jak nazwy kolumn nie interpretując je jako w trybie matematycznym. Czy ktoś ma rozwiązanie?

Odpowiedz

29

zgodnie z sugestią w winiety xtable gallery należy użyć funkcji odkażania (jak również zasugerowano również). Tylko niektóre atrapa kodu, jak mam go pracy z np:

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}) 

Powodzenia z tym.

poważaniem,

FM

+0

Czy wiesz, dlaczego ta funkcja odkażania działa? Przyjmuje argument 'x' i zwraca' x'. – Heisenberg

+0

to rzeczywiście intrygujące pytanie. Uruchamianie XTable bez niestandardowego 'sanitize.text.function' (tj. Z' ggetOption ("xtable.sanitize.text.function") 'zwracającym' NULL') wyzwoli domyślne zachowanie 'print.xtable' które ma na celu usunięcie wszystkich znaki, które mają specjalne znaczenie w formacie wyjściowym. Oczywiście w tym przypadku chcemy zachować dokładnie te znaki i ocenić je jako TeX. Stąd zręcznie bezużyteczna definicja funkcji. –