0

ファイル名の文字列があります:

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

「\」をすべて抽出して「\」に置き換えるにはどうすればよいですか? 他の言語では、文字列をループしてから文字ごとに置き換えることができますが、R ではそれができないと思います。

私は試した

substr(directoryLocation,1,1)

しかし、この場合に高度に最適化されています...どうすればより一般的になるでしょうか?

ありがとう

4

3 に答える 3

1

gsubはこのための一般的なツールですが、他の人が指摘しているように、エスケープを説明するには紛らわしい 4 つのスラッシュが必要です。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 に答える