使用模糊逻辑连接两个数据集

Posted

技术标签:

【中文标题】使用模糊逻辑连接两个数据集【英文标题】:Joining two datasets using fuzzy logic 【发布时间】:2017-11-05 16:34:54 【问题描述】:

我正在尝试在 R 中在两个数据集之间进行模糊逻辑连接:

第一个数据集有一个位置的名称和一个名为config 的列 第二个数据集包含一个位置的名称和两个附加属性,在将它们连接到第一个数据集之前需要对其进行汇总。

我想使用name 列连接两个数据集。但是,name 列可能在任一数据集中具有附加字符或前导字符,或者在更大的单词中包含一个单词。例如,如果我们查看这两个数据集,我希望名称 OPAL 加入 OPALAS,而 SAUSALITO Y 加入 SAUSALITO。

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

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

Dataset2 汇总代码

Data2a <- summaryBy(Age ~ Name,FUN=c(mean), data=Data2,na.rm=TRUE)
Data2b <- summaryBy(Rank ~ Name,FUN=c(sum), data=Data2,na.rm=TRUE)
Data2 <- data.frame(Data2a$Name, Data2a$Age.mean, Data2b$Rank.sum)

Desired Outcome:
    Name        Config  Age   Rank
    ALTO D      BB      35    8
    CONTRA      ST      12.5  25
    EIGHT A     DD      18    21
    OPALAS      BB      19    4
    SAUSALITO Y AA      12    5
    SOLANO J    ST      34    43

【问题讨论】:

查看fuzzyjoin 包。 【参考方案1】:

我能够使用fuzzyjoin 包连接两个数据集:

library(fuzzyjoin)
stringdist_inner_join(Dataset1, Data2,
     by ="Name", distance_col = NULL)

【讨论】:

以上是关于使用模糊逻辑连接两个数据集的主要内容,如果未能解决你的问题,请参考以下文章

Django 数据库操作

基于条件的 2 个大型数据集上的模糊模糊字符串匹配 - python

如何使用外键连接两个数据集以创建新数据集?

使用python中的两个数字合并或连接两个数据集

第二章 导入数据到SAS | 逻辑库和SAS数据集

使用 Apache Hadoop Pig 内连接两个数据集