※ 引述《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]