ram*_*esh 3 string search r subset
这里,
a<-c("Look at the sky", "Sun is bright", "cloudy day")
b<-c("sky", "day")
Run Code Online (Sandbox Code Playgroud)
我想a基于的子集b.我的首选答案是:
"Look at the sky", "cloudy day"
Run Code Online (Sandbox Code Playgroud)
在R中如何做到这一点?
您可以将b与b中的所有字词匹配 sapply
sapply(b, grepl, a)
sky day
[1,] TRUE FALSE
[2,] FALSE FALSE
[3,] FALSE TRUE
Run Code Online (Sandbox Code Playgroud)
然后使用apply和子集折叠所有行a.
a[apply(sapply(b, grepl, a), 1, any)]
[1] "Look at the sky" "cloudy day"
Run Code Online (Sandbox Code Playgroud)
创建组合的正则表达式模式
paste(b, collapse="|")
[1] "sky|day"
Run Code Online (Sandbox Code Playgroud)
用它来grep
a[grepl(paste(b, collapse="|"), a)]
[1] "Look at the sky" "cloudy day"
Run Code Online (Sandbox Code Playgroud)