【问题标题】:Fuzzy Logic Join using two columns使用两列的模糊逻辑连接
【发布时间】:2017-11-06 10:08:49
【问题描述】:

我正在使用 r 包fuzzyjoin 来连接两个数据集。目前我正在加入一个column,并想加入两个。

  • 第一个数据集包含一个位置名称和一个名为 config 的列
  • 第二个数据集有一个位置的名称和两个三 属性
  • 我想加入两列名称和 TM

我尝试添加我希望作为向量加入的列名,但这似乎不起作用。我收到一条错误消息:

  • 错误:每个变量必须是一维原子向量或列表。问题 变量:col.

    #This works to join on 1 column
    library(fuzzyjoin)
    stringdist_inner_join(Dataset1, Data2, by ="Name", distance_col = NULL)
    
    #Joiningontwocolumns
    stringdist_inner_join(Dataset1, Dataset2, by =c("Name","TM"), distance_col = NULL)
    

数据集1:

 Name           Config     TM
 ALTO D         BB         T
 CONTRA         ST         D
 EIGHT A        DD         D
 OPALAS         BB         T
 SAUSALITO Y    AA         D
 SOLANO J       ST         D

数据集2:

 Name       Age     Rank    TM
 ALTO D     50      2       T
 ALTO D     20      6       D
 CONTRA     10      10      D
 CONTRA     15      15      T
 EIGHTH     18      21      T
 OPAL       19      4       T
 SAUSALITO  2       12      D
 SOLANO     34      43      D

【问题讨论】:

  • 试试by =c("Name"="TM")。来源:?fuzzyjoin::stringdist_inner_join中的例子
  • 看到 github 中的示例,您需要编写以下内容:by = c(Name = "TM")
  • @jazzurro,谢谢,它在一定程度上起作用了。我想说fuzzyjoin 包有多个连接的问题。
  • @steppermotor 我明白了。我现在正在玩这个包。我想我会看到一些问题。谢谢你告诉我这个!

标签: r fuzzyjoin


【解决方案1】:

我花了一段时间才弄清楚,但我相信多列连接的正确语法是:

stringdist_inner_join(data1, data2, 
                      by = list(x = c("Name", "TM"), y = c("Name", "TM")), 
                      distance_col = NULL))

【讨论】:

  • (这是用于列名称可能不同的情况......)
猜你喜欢
  • 2017-11-05
  • 2023-04-11
  • 2017-08-25
  • 1970-01-01
  • 2016-03-17
  • 2011-05-17
  • 2016-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多