我很好奇:
> 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"
以了解模式规范的详细信息。关于r - strsplit函数中的字符 "|"(垂直条/管道),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12180927/