我很好奇:
> 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="|")?
我很好奇:
> 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="|")?
这是因为split参数被解释为正则表达式,并且|是正则表达式中的特殊字符。
为了解决这个问题,您有两种选择:
选项 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"模式规范的详细信息。