我想导出一个带有百分号(%)符号的单位列的乳胶表。
library(xtable)
foo <- data.frame(units='%', citation = '\\citep{authorYYYYabc}')
print(xtable(foo), sanitize.text.function = function(x) {x})
注意:自Joris回答以来,上面的代码已经改变。
在这种情况下,'%'被LaTeX解释为注释。
我试过了
gsub('%', '\\%', foo)
返回
[1] "1"
如何将%转换为\%以便LaTex将其注释掉?
这个问题有点像前一个问题“can R paste('\')?";甚至在同一张桌子上打磨,但我无法弄清楚这个特殊情况。
答案 0 :(得分:2)
我不确定我是否完全理解你。如果我执行xtable(foo),则%被正确转义:
...
\hline
1 & \% \\
\hline
...
如果你想为其他东西做一个转义斜杠,你需要在gsub中使用四倍的转义:
> x <- gsub('%', '\\\\%', foo[,1])
> x
[1] "\\%"
> cat(x,"\n")
\%
请注意,您不能只在数据框中使用gsub。这可以通过
显示> as.character(foo)
[1] "1"
答案 1 :(得分:2)
将Joris的答案与评论中的代码结合起来:
library(xtable)
foo <- data.frame(units='%', citation = '\\citep{authorYYYYabc}')
print(xtable(foo), sanitize.text.function = function(x)gsub('%', '\\\\%', x))