【问题标题】:combining strings to one string in r在r中将字符串组合成一个字符串
【发布时间】:2018-05-30 21:29:46
【问题描述】:

我正在尝试将一些刺痛合二为一。最后应该生成这个字符串: //*[@id="coll276"] 所以我的字符串内部是一个向量:tag <- 'coll276' 我已经使用了这样的 paste() 方法:

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

但我的结果如下所示://*[@id=\"coll276\"] 我不明白为什么 R 会在我的字符串中加入一些 \,但是我该如何解决这个问题呢?

非常感谢!

【问题讨论】:

  • 查看this answer 以获得解释。如果您想查看字符串是否正确连接,请尝试使用 cat 而不是粘贴到控制台输出

标签: r


【解决方案1】:

tldr:别担心它们,它们并不真的存在。这只是print添加的东西

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

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

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

为了防止这种情况,R 会“转义”字符串中的引号,这样它们就不会这样做。这只是视觉效果。如果您将字符串写入文件,您会发现转义的 \ 实际上并不存在:

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

这是文件中的内容:

//*[@id="coll276"]

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

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

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

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

【讨论】:

    猜你喜欢
    • 2014-03-15
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多