将字符串组合到r中的一个字符串

时间:2018-05-30 21:29:47

标签: r

我正在尝试将一些蜇伤与一种叮当作用。最后应生成此字符串: //*[@id="coll276"] 所以我的字符串内部是一个向量:tag <- 'coll276' 我已经使用了这样的paste()方法:

paste('//*[@id="',tag,'"]', sep = "")

但我的结果如下://*[@id=\"coll276\"] 我不是为什么R会把一些\放到我的字符串中,但是如何解决这个问题呢?

非常感谢!

1 个答案:

答案 0 :(得分:3)

tldr:不要担心他们,他们并不是真的在那里。这只是print

添加的内容

那些\是转义字符,告诉R忽略跟随它们的字符的特殊属性。查看粘贴功能的输出:

paste('//*[@id="',tag,'"]', sep = "")
[1] "//*[@id=\"coll276\"]"

您将看到输出,因为它是一个字符串,用双引号""括起来。通常,字符串中的双引号会将字符串分解为两个字符串,中间是裸代码:  "//*[@id\" coll276 "]"

为了防止这种情况,R&#34;逃避&#34;你的字符串中的引号,所以他们不这样做。这只是一种视觉效果。如果您将字符串写入文件,您会看到那些逃脱的\实际上并不存在:

write(paste('//*[@id="',tag,'"]', sep = ""), 'out.txt')

这是文件中的内容:

//*[@id="coll276"]

您可以使用cat将字符串的确切值打印到控制台(Thanks @LukeC):

cat(paste('//*[@id="',tag,'"]', sep = ""))
//*[@id="coll276"]

或使用单引号(如果可能):

paste('//*[@id=\'',tag,'\']', sep = "")
[1] "//*[@id='coll276']"