2013-02-14 4 views
16

Я использую xtable для компиляции таблиц из R автоматически при компиляции моего документа TeX. Вопрос, который у меня есть, заключается в том, как я получаю имена переменных в таблице (которые в моем случае являются именами столбцов в dataframe), чтобы быть в математическом режиме. Я хранятся мои результаты в dataframe adf.results, и, по сути, что я хочуИспользование xtable с R и Latex, математический режим в именах столбцов?

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

но просто вставляет $m^r_t$ ... как имена столбцов без их интерпретации как в математическом режиме. у кого-нибудь есть решение?

ответ

29

Как предложено в виньетике xtable gallery, вы должны использовать функцию санитизации (как предложено unikum). Просто некоторые фиктивный код, как я получил это работает с вашим примером:

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

удачи с ней.

С наилучшими пожеланиями,

FM

+0

вы знаете, почему эта функция санитарной работает ли? Он принимает аргумент 'x' и возвращает' x'. – Heisenberg

+0

Это действительно интригующий вопрос. Запуск xtable без пользовательской 'sanitize.text.function' (т.е. с' ggetOption ("xtable.sanitize.text.function") 'return' NULL') вызовет поведение 'print.xtable' по умолчанию, которое должно удалить все символы, которые имеют особый смысл в выходном формате. Конечно, в этом случае мы хотим сохранить именно эти символы и оценить их как TeX. Следовательно, сглаживо бесполезное определение функции. –