2013-02-12 61 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