Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k views
in Technique[技术] by (71.8m points)

regex - Can I use an OR statement to indicate the pattern in stringr's str_extract_all function?

I'm looking at a number of cells in a data frame and am trying to extract any one of several sequences of characters; there's only?one of these sequences per per cell.

Here's what I mean:

dF$newColumn = str_extract_all(string = "dF$column1", pattern ="sequence_1|sequence_2")

Am I screwing the syntax up here? Can I pull this sort of thing with stringr? Please rectify my ignorance!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Yes, you can use | since it denotes logical or in regex. Here's an example:

vec <- c("abc text", "text abc", "def text", "text def text")
library(stringr)
str_extract_all(string = vec, pattern = "abc|def")

The result:

[[1]]
[1] "abc"

[[2]]
[1] "abc"

[[3]]
[1] "def"

[[4]]
[1] "def"

However, in your command, you should replace "dF$column1" with dF$column1 (without quotes).


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...