Re: [问题] 用一行code str_detect 判断多个string元素

楼主: celestialgod (天)   2016-11-19 21:09:30
※ 引述《wanson (望生)》之铭言:
: 我上网看到有人讨论
: 当要判断的strin 为多个可以用
: string =c("a","b")
: str_detect(data, paste(string, collapse = '|'))
: 用| 去判断字串中有 a or b的出现有无
: 我后来想如果我要取“同时”要有a 与b 本以为只要把| 换成 &
: 可以得到结果
: 但发现似乎没有相关的讨论
: 想要请问一下 是否有更好简洁的写法帮助我完成这个需求
循环在资料大一点也会慢
会建议下面做法:
library(stringr)
library(pipeR)
strs <- sample(letters[1:4], 500, TRUE) %>>%
(str_c(.[1:125], .[126:250], .[251:375], .[376:500]))
patterns <- letters[1:2]
contain_a_b <- sapply(patterns, str_detect, string = strs) %>>%
rowSums %>>% `==`(length(patterns))
strs[contain_a_b]
作者: cywhale (cywhale)   2016-11-20 00:50:00
`==`(length(patterns) 这招真是不错 推~~
作者: wanson (望生)   2016-11-20 03:27:00
佩服

Links booklink

Contact Us: admin [ a t ] ucptt.com