10

这里,

> r<-c("AAandBB", "BBandCC")
> strsplit(as.character(r),'and')
[[1]]
[1] "AA" "BB"

[[2]]
[1] "BB" "CC"

运作良好,但

> r<-c("AA|andBB", "BB|andCC")
> strsplit(as.character(r),'|and')
[[1]]
[1] "A" "A" "|" ""  "B" "B"

[[2]]
[1] "B" "B" "|" ""  "C" "C"

在这里,答案是不正确的。当我使用“|and”时,如何获得“AA”和“BB”?
提前致谢。

4

1 回答 1

28

正如您在 ?strsplit 上所读到的,函数 strsplit 中的参数 split 是一个正则表达式。因此,您要么需要转义竖线(它是一个特殊字符)

strsplit(r,split='\\|and')

或者你可以选择 fixed=TRUE 表示 split 不是正则表达式

strsplit(r,split='|and',fixed=TRUE)
于 2014-04-21T07:55:48.407 回答