首页 > 解决方案 > 使用字符串列表在字符串中搜索并返回匹配

问题描述

在 RI 想像标题所说的那样做。在字符列中搜索并返回匹配的单词

As.data.frame(
    c("yellow carrot","big car","green tomato","orange car","fertile goat","red snapper")
    )

c("yellow","red","orange","green","blue")

我想回来

As.data.frame(
    cbind(
        c("yellow carrot","big car","green tomato","orange car","fertile goat","red snapper"),
        c("yellow","NA","green","orange","NA","red")
        )

标签: rstringdataframecharacter

解决方案


我们可以str_extract用来获取匹配的子串

library(stringr)
df1$new <- str_extract(df1[[1]], paste(vec1, collapse="|")) 
df1$new
#[1] "yellow" NA       "green"  "orange" NA       "red"   

数据

vec1 <- c("yellow","red","orange","green","blue")
df1 <- data.frame(col1 = c("yellow carrot","big car",
  "green tomato","orange car","fertile goat","red snapper"))

推荐阅读