2013-02-14 96 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