6

私は興味がありました:

> strsplit("ty,rr", split = ",")  
[[1]]
[1] "ty" "rr"

> strsplit("ty|rr", split = "|")
[[1]]
[1] "t" "y" "|" "r" "r"

c("ty","rr")から来ないのはなぜstrsplit("ty|rr", split="|")ですか?

4

1 に答える 1

15

これは、split引数が正規表現として解釈され、正規表現|の特殊文字であるためです。

これを回避するには、次の 2 つのオプションがあります。

オプション 1: をエスケープする|、つまりsplit = "\\|"

strsplit("ty|rr", split = "\\|")
[[1]]
[1] "ty" "rr"

オプション 2: 指定fixed = TRUE:

strsplit("ty|rr", split = "|", fixed = TRUE)
[[1]]
[1] "ty" "rr"

の参照セクションにも注意してください。パターン仕様の詳細について?strsplit読むように指示されています。?"regular expression"

于 2012-08-29T15:03:23.423 に答える