澄清
用函数解决这个问题是不可能的,@IInspectable 在旧的、已删除的问题下的评论中友好地确认了这一点。长话短说:反斜杠需要在字符串文字中进行转义,即'C:\\Marketing'
需要传递 a 而不是'C:\Marketing'
. 我完全了解这个和这个问题,我在下面的回答不是关于抛出的错误、手动解决方案或使用其他相关问题中给出的其他软件(例如 AutoHotkey)。
请注意,这个问题是对另一个问题的跟进,感谢@IInspectable 的宝贵意见。
“Windows”路径...
我C:\Marketing
经常通过将 Windows 格式的路径(如 )粘贴到 R 代码中来使用它们。每次更改反斜杠非常烦人,因此我尝试为它们编写解析函数。期望的用法是在代码中使用此函数,并将复制的路径作为参数,即path_parse('C:\Marketing')
. 我的第一种方法,基于@Tyler Rinker从这里的回答,如下:
path_parse <- function(path = 'clipboard') {
path <- if (path == 'clipboard') readClipboard() else path
return(chartr('\\', '/', path))
}
并且它与复制到剪贴板的路径很好地工作,但不幸的是,当与粘贴的字符串文字一起使用时,它抛出了一条错误消息an unrecognized escape in character string
,例如这个问题:
> path_parse('C:\Marketing')
Error: '\M' is an unrecognized escape in character string starting "'C:\M"
当然,在这里手动更改所有输入字符串文字(如传递'C:\\Marketing'
或'C:/Marketing'
代替'C:\Marketing'
)不是一个选项,因为这正是我想以某种方式自动化它的原因。
一个与这个问题密切相关的问题是here,但它基于我不想安装的 Tinn-R GUI 和 AutoHotkey 软件。
救援插件
解决方案比我想象的更接近,一个 RStudio 插件(参见例如这里如何使用它们)通过将所有反斜杠更改为正斜杠并将其插入回代码中来解析选定的文本(即粘贴的“Windows”路径)。下面的答案中的代码和屏幕截图。