如何在R String中提取特定字符

时间:2013-05-09 13:11:10

标签: r

我有一个文件名字符串:

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

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

我试过

substr(directoryLocation,1,1)

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

由于

3 个答案:

答案 0 :(得分:1)

gsub是这个的通用工具,但正如其他人已经注意到你需要一个令人困惑的四个斜线来解释转义:你需要同时转义R文本和正则表达式引擎。

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

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

虽然这可能会在将相对路径扩展到绝对路径方面执行额外的工作(在此处通过C:进行前缀)。

答案 1 :(得分:0)

从理论上讲,这可以做你想做的事情

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

...然而

R> directoryLocation<-"\\Users\\me\\Dropbox\\Work\\"
R> directoryLocation
[1] "\\Users\\me\\Dropbox\\Work\\"
R> gsub("\\\\", "/", directoryLocation)
[1] "/Users/me/Dropbox/Work/"

答案 2 :(得分:0)

至少在Windows上,我们需要逃避所有的反斜杠,但gsub就是你想要的。

gsub("\\\\","/","\\Users\\me\\Dropbox\\Work\\")
[1] "/Users/me/Dropbox/Work/"