可以R paste()输出“\”吗?

时间:2010-12-07 17:31:28

标签: r text

Intro to R手册中所述,

paste("\\")

打印

[1] "\\"

是否可以打印出粘贴

[1] "\"

更新:我不希望Gavin的这个好答案卡在下面的评论中,所以我会把它粘贴在这里:

print(xtable(as.matrix("\\citep{citation}")), sanitize.text.function = function(x) {x}) 

3 个答案:

答案 0 :(得分:6)

你很困惑如何存储某些东西以及它如何“打印”。

您可以使用粘贴将\与其他内容组合在一起,但是如果您打印它,那么打印的表示将具有\来转义\,但是如果您使用cat将其输出到文件或屏幕,那么您将获得单\,例如:

> tmp <- paste( "\\", "cite{", sep="" )
> print(tmp)
[1] "\\cite{"
> cat(tmp, "\n")
\cite{ 

答案 1 :(得分:4)

这是R中单个“\”的打印表示。显然,正确的答案将取决于您的最终用法,但是会这样:

> citations <- paste("title", 1:3, sep = "")
> cites <- paste("\\citep{", citations, "}", sep = "")
> writeLines(cites)
\citep{title1}
\citep{title2}
\citep{title3}

使用writeLines(),您可以使用以下内容将其输出到文件:

> writeLines(cites, con = file("cites.txt"))

导致以下文件:

$ cat cites.txt 
\citep{title1}
\citep{title2}
\citep{title3}

答案 2 :(得分:1)

一种方法是使用write命令,例如

> write("\\", file="")
\

写入通常用于写入文件,因此您需要设置file=""以将其打印到STDOUT。

在write命令中重复\,这样它就不会转义结束引号。

我不确定这是否是正确的方法,但它对我有用。

编辑:你使用paste()命令稍微实现了。希望我的答案仍然与你的困境有关。道歉。