2013-02-14 99 views
16

我正在使用xtable編譯我的TeX文檔時自動從R編譯表格。我的問題是如何讓表中的變量名稱(在我的情況下是數據框中的列名)處於數學模式。我已經存儲了我的結果在數據幀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 2015-03-17 10:11:13

+0

這確實是一個有趣的問題。在沒有定製'sanitize.text.function'的情況下運行xtable(即用'ggetOption(「xtable.sanitize.text.function」)'returns' NULL')將會觸發'print.xtable'的默認行爲,它將刪除所有在輸出格式中有特殊意義的字符。當然,我們在這種情況下想要保留這些字符並將它們評估爲TeX。因此,接縫無用的功能定義。 – 2015-03-24 10:13:29