2017-09-06 251 views
2

把\”在我的字符串我有一个数组:如何使用paste0功能

t <- c("IMCR01","IMFA02","IMFA03") 

我想使它看起来像这样:

"\'IMCR01\'","\'IMFA02\'","\'IMFA03\'" 

我尝试不同的方法,如:

paste0("\'",t,"\'") 
paste0("\\'",t,"\\'") 
paste0("\\\\'",t,"\\\\'") 

但他们都不是正确的。任何人都可以帮我吗?其他功能也可以。

回答

5

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

paste0("\\'",t,"\\'") 

如果你想告诉paste使用反斜杠,你需要一次逃脱它(但不是两次,因为你需要一个正则表达式模式中) 。这将输出以下到控制台中R:

[1] "\\'IMCR01\\'" "\\'IMFA02\\'" "\\'IMFA03\\'" 

这里的技巧是反斜杠甚至用R在控制台输出转义。如果你是不是写t到一个文本文件,你只能看到一个反斜杠,你想:

write(t, file = "/path/to/your/file.txt") 

但为什么[R需要转义反斜线写自己的控制台时?一种可能性是,如果它是写文字\n那么这实际上将通过控制台作为一个换行符解释。因此,对Eacaping的需求仍然存在。

+0

非常感谢。我从来没有注意到这样的细节! –

+2

@FengChen - 'cat'是你的朋友检查什么字符串 “实际上” 是时候:'猫(paste0( “\\ '”,T, “\\'”), “\ n”)'的实例。 – thelatemail