2

我想导出一个带有百分比 (%) 符号的单位列的乳胶表。

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 将其注释掉?

这个问题有点像上一个问题“可以R粘贴('\')吗?” ; 甚至抛光同一张桌子,但我无法弄清楚这个特殊情况。

4

2 回答 2

2

我不确定我是否完全正确地理解了你。如果我执行 xtable(foo),则 % 被正确转义:

...
  \hline
1 & \% \\ 
   \hline
...

如果您想为其他东西制作转义斜线,则需要在 gsub 中使用四倍:

> x <- gsub('%', '\\\\%', foo[,1])
> x
[1] "\\%"
> cat(x,"\n")
\% 

请注意,您不能 gsub 在数据框中,只能在向量中。这可以通过

> as.character(foo)
[1] "1"
于 2011-02-17T17:11:37.207 回答
2

将 Joris 的回答与评论中的代码结合起来:

library(xtable)
foo <- data.frame(units='%', citation = '\\citep{authorYYYYabc}')
print(xtable(foo), sanitize.text.function = function(x)gsub('%', '\\\\%', x))
于 2011-02-17T19:19:34.257 回答