「C:\Windows\System32\winver.exe」のようなパス付きファイル名(フルパス)の文字列から、パスのみ(この例では「C:\Windows\System32」)を取り出す方法。
gsub関数を使用して正規表現による置換を行えばよい。以下、「C:\Windows\System32\winver.exe」を使用した例。なお、参考までに「C:/Windows/System32/winver.exe」を使用した例も示す。
> pathfile1 <- "C:\\Windows\\System32\\winver.exe"
> pathfile2 <- "C:/Windows/System32/winver.exe"
> gsub("\\\\[^\\]+$", "", pathfile1)
[1] "C:\\Windows\\System32"
> gsub("/[^/]+$", "", pathfile2)
[1] "C:/Windows/System32"
Rに限らず正規表現において記号¥は特殊な文字として扱われるため、文字定数として扱う場合には2文字続けて表記する必要があるので注意(¥と扱うには¥¥としなければならない)。なお、3行目のgsub関数内では特殊扱いが2重で発生しているため、¥を4つ並べる必要があり、そのようにしている箇所がある。
ウィンドウズではフォルダーの区切りを示す文字として¥(円記号)が使用されるが、リナックスでは/(スラッシュ記号)が使用される。Rではフォルダーの区切り記号としてどちらも問題なく使えるので、特殊扱いによる煩雑さを避けるために、フォルダーの区切り記号には¥ではなく/を使用したほうがよい。