我想在模式“|”处分割字符串


unlist(strsplit("I am | very smart", " | "))

[1] "I"     "am"    "|"     "very"  "smart"

或者
gsub(pattern="|", replacement="*", x="I am | very smart")

[1] "*I* *a*m* *|* *v*e*r*y* *s*m*a*r*t*"

最佳答案

问题是默认情况下strsplit" | "解释为正则表达式,其中|具有特殊含义(如“或”)。

使用fixed参数:

unlist(strsplit("I am | very smart", " | ", fixed=TRUE))
# [1] "I am"       "very smart"

副作用是计算速度更快。

stringr 替代:
unlist(stringr::str_split("I am | very smart", fixed(" | ")))

关于r - 如何使用 '|'字符拆分,其行为异常?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6382425/

10-10 06:27