2013-02-12 66 views
3

我希望R中的一個字符變量從中取值,可以說「a」,並添加「\%」,以稍後在LaTeX中創建% 。在R中粘貼「25 %」以在LaTeX中進一步處理

通常我會做這樣的事情:

a <- 5 
paste(a,"\%") 

但這種失敗。

Error: '\%' is an unrecognized escape in character string starting "\%" 

任何想法?解決方法是定義另一個在LaTeX中給出%-sign的命令,但我更喜歡R內的解決方案。

回答

5

與許多其他語言一樣,字符串中的某些字符在轉義時具有不同的含義。其中一個例子是\n,這意味着換行符而不是n。當您編寫\%時,R會嘗試將%解釋爲特殊字符,但不會這樣做。你可能想試圖逃跑反斜槓,所以這只是一個反斜槓:

paste(a, "\\%") 

您可以在轉義序列here讀取。

+0

這給了「5 \\%」 – 2013-02-12 14:26:50

+1

這是因爲R是將其打印爲一個字符串。嘗試將其寫入標準輸出:'write(「foo \\%」,stdout())',您將看到只有一個反斜槓。 – nemo 2013-02-12 14:28:53

+0

@DanielK。是的,這就是什麼會給你在乳膠下的'5 \%'... – juba 2013-02-12 14:29:02

5

你也可以看看從HmisclatexTranslate功能,這將字符串特殊字符轉義,使他們LaTeX的兼容:

R> latexTranslate("You want to give me 100$ ? I agree 100% !") 
[1] "You want to give me 100\\$ ? I agree 100\\% !" 
+1

不知道這個。謝謝! – 2013-02-12 14:57:38

+0

@ AriB.Friedman不客氣! 'Hmisc'中有許多與LaTeX相關的功能,如果你還沒有,可以檢查一下。 – juba 2013-02-12 14:59:18