[英]Extract & combine multiple substrings using multiple patterns from some but not all strings contained in list & return to list in R
[英]match multiple patterns, return multiple substrings
假設我有一個向量搜索字符串,以及一個可能包含多個匹配項的目標字符串。 例如顏色:
search_strings <- c("Black","Grey","Green")
target_string <- "FooBlackBlahGreenBleh"
獲取向量(“ Black”,“ Green”)作為輸出的最有效方法是什么? 即,在目標字符串中的搜索字符串子集的向量?
我們可以使用Vectorize
來矢量化grepl
:
search_strings[Vectorize(grepl)(search_strings,target_string)]
# [1] "Black" "Green"
我們還可以使用可以采用向量的str_match
。 我們作為輸出獲得的vector
具有不匹配的NA,我們將其用is.na
刪除
library(stringr)
v1 <- str_match(target_string, search_strings)[,1]
v1
#[1] "Black" NA "Green"
v1[!is.na(v1)]
#[1] "Black" "Green"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.