読者です 読者をやめる 読者になる 読者になる

Rのエスケープ文字はダブルのエスケープ

URLの文字分割したい時など、?とかの特殊記号が登場する。

しかし、単純に?でstrsplit関数を使うと、文字が全部分解されてしまう。Fu*k

これは?がメタ文字として扱われているためで、?を文字として扱って分割するにはエスケープを2つもつけないといけない。

以下、コード例

> test_vec <- "id5573746623646?dhdhcdsvcydsucusdv"
> strsplit(test_vec, split="?")
[[1]]
 [1] "i" "d" "5" "5" "7" "3" "7" "4" "6" "6" "2" "3" "6" "4" "6" "?" "d" "h" "d" "h" "c" "d" "s" "v" "c" "y" "d" "s" "u" "c" "u" "s" "d" "v"

> strsplit(test_vec, split="\?")
 エラー:  ""\?" で始まる文字列の中で '\?' は文字列で認識されないエスケープです 
> strsplit(test_vec, split="\\?")
[[1]]
[1] "id5573746623646"    "dhdhcdsvcydsucusdv"