【问题标题】:Match a string pattern from other data.frame匹配来自其他 data.frame 的字符串模式
【发布时间】:2014-07-23 19:24:51
【问题描述】:

假设我有两个数据框 a 和 b, a 有一列称为“详细信息”:

pure water
wood fire
mineral water
water
fire work

并且 b 有一列称为“类型”:

water
fire

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

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

理想情况下,可以使用c &lt;- grep(a$detail,b$types) 之类的东西。不确定它是否在 R 中被允许。

提前致谢!

【问题讨论】:

  • 您能提供一个实际的数据示例吗?
  • 感谢您的回复!我是新来的,所以只需创建一个降价示例。 rpubs.com/songlh15/22723

标签: regex r merge dataframe pattern-matching


【解决方案1】:

a 中创建一个type 列,然后在其上合并:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    相关资源
    最近更新 更多