在R字符串中打印反斜杠

时间:2013-10-12 11:39:30

标签: r knitr

GNU R 3.02

> bib <- "\cite"
Error: '\c' is an unrecognized escape in character string starting ""\c"
> bib <- "\\cite"
> print(bib)
[1] "\\cite"
> sprintf(bib)
[1] "\\cite"
> 

如何只用一个“\”打印出字符串变量bib?

(我已经尝试了所有可想而知的事情,并发现R将“\\”视为一个角色。)

我发现在很多情况下这不是问题,因为这通常是由R内部处理的,比方说,如果字符串用作绘图的文本。

但我需要将它发送给LaTeX。所以我真的要删除它。

我看到cat可以解决问题。如果cat只能将其结果发送到字符串。

3 个答案:

答案 0 :(得分:6)

字符元素“\ cite”中没有反斜杠。反斜杠被解释为转义符,两个字符“\ c”被解释为cntrl-c。除了不是公认的角色。见?Quotes。第二个版本只有一个反斜杠后跟4个字母字符。对字符进行计数以查看:

nchar("\\cite")
[1] 5

答案 1 :(得分:4)

您应该使用cat

bib <- "\\cite"
cat(bib)
# \cite

您可以在##中设置一些选项来移除[1]knitr。这是一个示例块:

<<newChunk,echo=FALSE,comment=NA,background=NA>>=
bib <- "\\cite"
cat(bib)
@

它会让你\cite。另请注意,您可以全局设置这些选项。

答案 2 :(得分:3)

行,

<<echo=FALSE,result='asis'>>
result <- cat(rbib)
@

诀窍(没有result <-位,[1]被添加)。它只是感觉很糟糕。