如何在R脚本中复制粘贴含不平衡引号的字符串?
在R中复制粘贴带引号文本的简便解决方案
哈哈,这个问题我太熟了!每次复制带引号的文本到R里都容易踩这个引号不平衡的坑,给你几个超简便的解决方案,再也不用手动加一堆反斜杠啦:
用单引号包裹整个字符串(兼容所有R版本)
原文本里的双引号在单引号包裹的字符串中不需要转义,只需要处理内部的单引号——把原文本里的year's改成year''s(两个连续单引号代表一个单引号)就行,复制粘贴时只改这一处:mystring = 'Today is the day "Stack Overflow" will miss its year''s target'你也可以用反斜杠转义单引号:
'Today is the day "Stack Overflow" will miss its year\'s target',不过前者的写法更直观,改起来更快。用R 4.0+支持的原生字符串(最省心的方案!)
从R 4.0版本开始,原生字符串(Raw Strings)功能完美解决了这个问题!用r"(...)"把目标文本包裹起来,里面的任何双引号、单引号都不需要转义,直接把原文本完完整整复制粘贴进去就行,连一个字符都不用改:mystring = r"(Today is the day "Stack Overflow" will miss its year's target)"这个方法简直是复制粘贴带引号文本的福音,只要你的R版本是4.0及以上,强烈推荐优先用它!
常规转义法(不推荐,太繁琐)
就是你最开始尝试的写法:用双引号包裹整个字符串,然后给内部的双引号加反斜杠转义:mystring = "Today is the day \"Stack Overflow\" will miss its year's target"这种方法需要手动给每个内部双引号加反斜杠,文本越长越容易出错,所以除非迫不得已,不然不建议用。
内容的提问来源于stack exchange,提问作者ℕʘʘḆḽḘ
相关产品推荐
相关产品推荐

