我正在尝试将一些蜇伤与一种叮当作用。最后应生成此字符串:
//*[@id="coll276"]
所以我的字符串内部是一个向量:tag <- 'coll276'
我已经使用了这样的paste()方法:
paste('//*[@id="',tag,'"]', sep = "")
但我的结果如下://*[@id=\"coll276\"]
我不是为什么R会把一些\放到我的字符串中,但是如何解决这个问题呢?
非常感谢!
答案 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']"