

パスが指定されたときに指定されたパスの(エスケープ)を/に置換したいと思ってます。  
例えば  
C:\R\data\covid  
を  
C:/R/data/covid/  
というように置換したいです。

以下のプログラムのように、gsub関数を使ってパスの(エスケープ)を/に置換しようとしましたが、エラーになってしまいました。

[code]

    gsub("\\","/","C:\R\data\covid\")
    エラー:  ""C:\R" で始まる文字列の中で '\R' は文字列で認識されないエスケープです 
    
[/code]

3番目の変数を書き換えず、置換する方法はありますか？(エラーの原因は3番目の変数に(エスケープ)があるからだと思ってますが、3番目の変数をそのまま使いたいです。）

補足  
以下のプログラムは動くことを確認しています。

[code]

    gsub("\\","/","C:\\R\\data\\covid\\", fixed=TRUE)
    [1] "C:/R/data/covid/"
    gsub("\\\\","/","C:\\R\\data\\covid\\")
    [1] "C:/R/data/covid/"
    
[/code]


CC BY-SA 4.0
2020-08-02T07:07:04.917
69180
2022-05-27T09:01:25.223
34824
question
r 正規表現
パスの\(エスケープ)を/に置換する方法を教えてください


R言語では（R言語以外でもC言語なども）バックスラッシュはエスケープシーケンスを意味します。  
バックスラッシュ自体に特別な意味があるのです。  
従いまして、”\”を表す場合”\\\”と2つで表現します。  
これはプログラムの中では”\”を意味します。  
従って、

[code]

    gsub("\\","/","C:\\R\\data\\covid\\", fixed=TRUE)
    [1] "C:/R/data/covid/"
    gsub("\\\\","/","C:\\R\\data\\covid\\")
    [1] "C:/R/data/covid/"
    
[/code]

のように”\\\”と書くと、内部では”\”と見なされますので、これで正解です。


CC BY-SA 4.0
2020-08-03T01:48:42.177
69197
2020-08-03T01:48:42.177
24490
69180
answer