簡體   English   中英

如何在R中gsub('%','\\%',…?

[英]How to gsub('%', '\%', … in R?

我想導出帶有單位欄的乳膠表,該單位欄具有百分比(%)符號。

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可以粘貼('\\')嗎?” ; 甚至拋光同一張桌子,但我無法弄清楚這種特殊情況。

我不確定我是否完全了解您。 如果我執行xtable(foo),則%可以正確轉義:

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

如果要為其他內容加上轉義斜線,則需要在gsub中添加四倍的轉義:

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

提醒您,您不能在數據框中gsub,而只能在向量中gsub。 這可以顯示為

> as.character(foo)
[1] "1"

將Joris的答案與注釋中的代碼結合起來:

library(xtable)
foo <- data.frame(units='%', citation = '\\citep{authorYYYYabc}')
print(xtable(foo), sanitize.text.function = function(x)gsub('%', '\\\\%', x))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM