人物" |"在strsplit功能(垂直条/管)

时间:2012-08-29 15:01:09

标签: r

我很好奇:

> 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="|")

1 个答案:

答案 0 :(得分:13)

这是因为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"以了解模式规范的详细信息。