使用grepl将一个数据框的列值与另一个数据框的列匹配,该列包含逗号分隔的值

时间:2019-06-14 13:06:21

标签: r

我正在尝试通过匹配每个数据帧上的列(val)来查找和匹配两个数据帧(df1&df2),第一数据帧列包含文本值,而第二数据帧(df2)列包含多个文本值,以逗号分隔,这是数据帧的视图

val=c("AAAA","XXXX","BBBB","YYYY","ZZZZ","MMMM","YYYY","CCCC","GGGG")
df1 <- as.data.frame(val)
val=c("AAAA,BBBB","BBBB,CCCC,FFFF","CCCC,DDDD,GGGG,FFFF","GGGG","")
id =c(1,2,3,4,5)
df2 <- as.data.frame(val,id)

如果在df2中找到了df1的值,那么我需要df1中新列的ID

1 个答案:

答案 0 :(得分:0)

看看下面的代码是否有帮助。

library(tidyverse)
df2 = df2 %>% 
  mutate(val=str_split(val, ",", n=Inf)) %>% 
  unnest

df1 = df1 %>% 
  left_join(df2, by="val")