ファイル名の文字列があります:
directoryLocation<-"\Users\me\Dropbox\Work\"
「\」をすべて抽出して「\」に置き換えるにはどうすればよいですか? 他の言語では、文字列をループしてから文字ごとに置き換えることができますが、R ではそれができないと思います。
私は試した
substr(directoryLocation,1,1)
しかし、この場合に高度に最適化されています...どうすればより一般的になるでしょうか?
ありがとう
ファイル名の文字列があります:
directoryLocation<-"\Users\me\Dropbox\Work\"
「\」をすべて抽出して「\」に置き換えるにはどうすればよいですか? 他の言語では、文字列をループしてから文字ごとに置き換えることができますが、R ではそれができないと思います。
私は試した
substr(directoryLocation,1,1)
しかし、この場合に高度に最適化されています...どうすればより一般的になるでしょうか?
ありがとう
gsub
はこのための一般的なツールですが、他の人が指摘しているように、エスケープを説明するには紛らわしい 4 つのスラッシュが必要です。R テキストと正規表現エンジンの両方を同時にエスケープする必要があります。
別の方法として、Windows を使用している場合は、次のパラメーターを使用normalizePath
して設定します。winslash
normalizePath(directoryLocation,winslash="/",mustWork=FALSE)
[1] "C:/Users/me/Dropbox/Work/"
ただし、これにより、相対パスを絶対パスに展開する追加作業が実行される場合があります (ここでは、先頭に を付けて表示されますC:
)。
理論的には、これはあなたが望むことをするでしょう
gsub("\\\", "/", directoryLocation)
でも...
R> directoryLocation<-"\\Users\\me\\Dropbox\\Work\\"
R> directoryLocation
[1] "\\Users\\me\\Dropbox\\Work\\"
R> gsub("\\\\", "/", directoryLocation)
[1] "/Users/me/Dropbox/Work/"
少なくとも Windows では、すべてのバックスラッシュをエスケープする必要がありますが、それgsub
はあなたが望むものです。
gsub("\\\\","/","\\Users\\me\\Dropbox\\Work\\")
[1] "/Users/me/Dropbox/Work/"