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