使用模糊逻辑连接两个数据集
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)
【讨论】:
以上是关于使用模糊逻辑连接两个数据集的主要内容,如果未能解决你的问题,请参考以下文章