如何使用paste0函数将\'放入我的字符串中

Fen*_*hen 3 string r paste

我有一个数组:

t <- c("IMCR01","IMFA02","IMFA03")
Run Code Online (Sandbox Code Playgroud)

我想让它看起来像这样:

"\'IMCR01\'","\'IMFA02\'","\'IMFA03\'"
Run Code Online (Sandbox Code Playgroud)

我试过不同的方式:

paste0("\'",t,"\'")
paste0("\\'",t,"\\'")
paste0("\\\\'",t,"\\\\'")
Run Code Online (Sandbox Code Playgroud)

但是没有一个是正确的.有人可以帮帮我吗?任何其他功能也都可以.

Tim*_*sen 6

实际上你的第二次尝试是正确的:

paste0("\\'",t,"\\'")
Run Code Online (Sandbox Code Playgroud)

如果你想告诉paste使用文字反斜杠,你需要将它转义一次(但不要两次,正如你在正则表达式模式中所需).这会将以下内容输出到R中的控制台:

[1] "\\'IMCR01\\'" "\\'IMFA02\\'" "\\'IMFA03\\'"
Run Code Online (Sandbox Code Playgroud)

这里的技巧是反斜杠甚至被控制台输出中的R转义.如果您要写入t文本文件,则只能看到一个反斜杠:

write(t, file = "/path/to/your/file.txt")
Run Code Online (Sandbox Code Playgroud)

但是为什么R在写入自己的控制台时需要反斜杠?一种可能性是,如果要写一个文字,\n那么这实际上会被控制台解释为换行符.因此,仍然存在对eacaping的需求.

  • @FengChen - "cat"是你查看"实际"字符串的朋友:`cat(paste0("\\'",t,"\\'"),"\n")`例如. (3认同)