0

我有一个文件名字符串:

directoryLocation<-"\Users\me\Dropbox\Work\"

如何提取所有“\”并将其替换为“\”?在其他语言中,您可以遍历字符串,然后逐个字符地替换,但我认为您不能在 R 中做到这一点。

我试过了

substr(directoryLocation,1,1)

但它针对这种情况进行了高度优化......它怎么能更普遍?

谢谢

4

3 回答 3

1

gsub是通用工具,但正如其他人所指出的,您需要一个令人困惑的四个斜杠来解释转义:您需要同时对 R 文本和正则表达式引擎进行转义。

如果使用 Windows,另一种方法是使用normalizePath和设置winslash参数:

normalizePath(directoryLocation,winslash="/",mustWork=FALSE)
[1] "C:/Users/me/Dropbox/Work/"

尽管这可能会在将相对路径扩展为绝对路径方面执行额外的工作(此处通过添加前缀来查看C:)。

于 2013-05-09T13:58:55.137 回答
0

理论上这会做你想要的

 gsub("\\\", "/", directoryLocation)

然而...

R> directoryLocation<-"\\Users\\me\\Dropbox\\Work\\"
R> directoryLocation
[1] "\\Users\\me\\Dropbox\\Work\\"
R> gsub("\\\\", "/", directoryLocation)
[1] "/Users/me/Dropbox/Work/"
于 2013-05-09T13:13:57.070 回答
0

至少在 Windows 上需要转义所有反斜杠,但这gsub是您想要的。

gsub("\\\\","/","\\Users\\me\\Dropbox\\Work\\")
[1] "/Users/me/Dropbox/Work/"
于 2013-05-09T13:14:04.553 回答