第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何匹配兩個(gè)數(shù)據(jù)集中的模糊匹配字符串?

如何匹配兩個(gè)數(shù)據(jù)集中的模糊匹配字符串?

收到一只叮咚 2019-11-29 14:35:29
我一直在研究一種基于不完善的字符串(例如公司名稱)來聯(lián)接兩個(gè)數(shù)據(jù)集的方法。過去,我必須匹配兩個(gè)非常臟的列表,一個(gè)列表包含名稱和財(cái)務(wù)信息,另一個(gè)列表包含名稱和地址。都沒有唯一的ID可以匹配!假設(shè)已經(jīng)應(yīng)用了清潔,并且可能存在打字和插入錯(cuò)誤。到目前為止,AGREP是我發(fā)現(xiàn)最有效的工具。我可以在AGREP包中使用levenshtein距離,該距離用于測(cè)量?jī)蓚€(gè)字符串之間的刪除,插入和替換的數(shù)量。AGREP將返回距離最?。ㄗ钕嗨疲┑淖址?。但是,我一直無法將命令從單個(gè)值轉(zhuǎn)換為將其應(yīng)用于整個(gè)數(shù)據(jù)幀。我已經(jīng)粗略地使用了for循環(huán)來重復(fù)AGREP函數(shù),但是總有一種更簡(jiǎn)單的方法。請(qǐng)參見以下代碼:a<-data.frame(name=c('Ace Co','Bayes', 'asd', 'Bcy', 'Baes', 'Bays'),price=c(10,13,2,1,15,1))b<-data.frame(name=c('Ace Co.','Bayes Inc.','asdf'),qty=c(9,99,10))for (i in 1:6){    a$x[i] = agrep(a$name[i], b$name, value = TRUE, max = list(del = 0.2, ins = 0.3, sub = 0.4))    a$Y[i] = agrep(a$name[i], b$name, value = FALSE, max = list(del = 0.2, ins = 0.3, sub = 0.4))}
查看完整描述

3 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

這是使用該fuzzyjoin包裝的解決方案。它使用類似dplyr語法,并stringdist作為模糊匹配的可能類型之一。


如C8H10N4O2 所建議,stringdistmethod =“ jw”為您的示例創(chuàng)建最佳匹配。


作為建議由dgrtwo,fuzzyjoin的開發(fā)商,我用了一個(gè)大max_dist,然后使用dplyr::group_by和dplyr::top_n只得到最小距離的最佳匹配。


a <- data.frame(name = c('Ace Co', 'Bayes', 'asd', 'Bcy', 'Baes', 'Bays'),

                price = c(10, 13, 2, 1, 15, 1))

b <- data.frame(name = c('Ace Co.', 'Bayes Inc.', 'asdf'),

                qty = c(9, 99, 10))


library(fuzzyjoin); library(dplyr);


stringdist_join(a, b, 

                by = "name",

                mode = "left",

                ignore_case = FALSE, 

                method = "jw", 

                max_dist = 99, 

                distance_col = "dist") %>%

  group_by(name.x) %>%

  top_n(1, -dist)


#> # A tibble: 6 x 5

#> # Groups:   name.x [6]

#>   name.x price     name.y   qty       dist

#>   <fctr> <dbl>     <fctr> <dbl>      <dbl>

#> 1 Ace Co    10    Ace Co.     9 0.04761905

#> 2  Bayes    13 Bayes Inc.    99 0.16666667

#> 3    asd     2       asdf    10 0.08333333

#> 4    Bcy     1 Bayes Inc.    99 0.37777778

#> 5   Baes    15 Bayes Inc.    99 0.20000000

#> 6   Bays     1 Bayes Inc.    99 0.20000000


查看完整回答
反對(duì) 回復(fù) 2019-11-29
  • 3 回答
  • 0 關(guān)注
  • 1057 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)