【问题标题】:Combine two dataframes based on if two column values exist in the other根据是否存在两个列值组合两个数据框
【发布时间】:2019-07-22 15:31:41
【问题描述】:

我有两个数据框,我想根据一个数据框中两个不同列中的两个值是否在另一个数据框的列中来组合它们

【问题讨论】:

  • 通过查看完整的 sql 短语是否包含数据框 A 中的文本,我基本上需要数据框 b 中的 freq 列
  • 我想知道是否可以像上面显示的那样合并这些数据帧。所以不要按列名合并,但是如果有某种方法可以检测表名和列名是否存在于完整的 sql 中,然后将它们连接在一起
  • 我基本上想根据表名和列名进行 cbind 以在一个数据框中获取所有内容

标签: r


【解决方案1】:

这是fuzzyjoin / stringr 解决方案:

library(fuzzyjoin); library(stringr)
fuzzy_inner_join(df_b, df_a, 
                 by = c("full_sql" = "column_name"), 
                 match_fun = str_detect)

#                                                                        full_sql index          Table_name             column_name freq
#1 UPDATE DDADMIN.USER_MASTER SETTERMINATED_USER_FLAG=:C19, TERMINATION_DATE=:C21  3694 DDADMIN.USER_MASTER SETTERMINATED_USER_FLAG    2
#2 UPDATE DDADMIN.USER_MASTER SETTERMINATED_USER_FLAG=:C19, TERMINATION_DATE=:C21  3694 DDADMIN.USER_MASTER        TERMINATION_DATE    2
#3  UPDATE DDADMIN.USER_MASTER SETTERMINATED_USER_FLAG='N', TERMINATION_DATE=NULL  3695 DDADMIN.USER_MASTER SETTERMINATED_USER_FLAG    2
#4  UPDATE DDADMIN.USER_MASTER SETTERMINATED_USER_FLAG='N', TERMINATION_DATE=NULL  3695 DDADMIN.USER_MASTER        TERMINATION_DATE    2

【讨论】:

  • 你知道为什么我运行它时会出现以下错误吗?没有适用于“因子”类对象的“类型”方法
猜你喜欢
  • 2023-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
  • 2019-05-01
  • 1970-01-01
  • 2022-01-20
相关资源
最近更新 更多