简体   繁体   English

在 r 中查找两个数据框列之间的部分匹配元素

[英]Find Partial matching elements between two dataframe columns in r

I have two data frames in which I need to match column A of Input data frame with Lookup data frame and find the partial matching elements.我有两个数据框,我需要将输入数据框的 A 列与Lookup数据框进行匹配,并找到部分匹配的元素。 My resulting data frame will be as data frame Result .我生成的数据框将作为数据框Result

A=c("Green|Red|Yellow","Blue","Orange|Peach","Violet")
B=c(23,41,65,89)
Input=data.frame(A,B)

Matches=c("Green","Orange","Red","Yellow","Peach")
Lookup=data.frame(Matches)

Matched=c("Yes","Yes","Yes","No")
Result=data.frame(A,B,Matched)

If someone know the solution pleas help.如果有人知道解决方案,请提供帮助。

We could do it with an ifelse statement:我们可以使用ifelse语句来做到这一点:

library(dplyr)
library(stringr)

Input %>% 
  mutate(Matched = ifelse(str_detect(A, paste(Lookup$Matches, collapse = "|")), "Yes", "No"))
                 A  B Matched
1 Green|Red|Yellow 23     Yes
2             Blue 41      No
3     Orange|Peach 65     Yes
4           Violet 89      No

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM