匹配来自其他data.frame的字符串模式

时间:2014-07-23 19:24:51

标签: regex r merge dataframe pattern-matching

假设我有两个数据帧a和b, a有一列名为'detail':

pure water
wood fire
mineral water
water
fire work

和b有一列名为'type':

water
fire

许多R函数需要输入文本来匹配,grep('fire',a),但我的问题是,是否有办法匹配使用b?我试过循环但失败了。以下SQLDF得到了匹配的所有错误结果。

ab <- sqldf(select *,case when detail in (select distinct types from b) then 1 else 0 end as match) from a)

理想情况下,可以使用c <- grep(a$detail,b$types)之类的内容。不确定是否允许在R中使用。

提前致谢!

1 个答案:

答案 0 :(得分:1)

type中创建a列,然后合并到其中:

merge(transform(a, type = sub(".* ", "", a$detail)), b, all = TRUE)