簡體   English   中英

通過最佳字符串匹配對數據幀中的字符串變量進行分組以生成子集

[英]Grouping string variables from a dataframe by best string match to make subsets

我有一個包含國家名稱列的數據框。 例如,即使它們是同一個國家,這些名稱的書寫方式也不同,大小寫不同,缺少一些字母,一些額外的字母和子代。

所以我需要將它們分組在相似的模式中。 例如,我有兩個屬於同一類別的觀察結果:(“巴西”,“巴西”),我需要將它們放在一起。 我無法手動執行此操作,因為整個數據框由約 10 000 個觀測值組成。

在進行了在一個類別中相似的那些觀察之后,我需要從這個類別中制作一些子集。

是否有可能的解決方案將這些相似的名稱分組到一個類別中,然后使用該類別與數據框中的其他列創建子集?

我試圖使用 agrep 函數但沒有成功。

number <- c(1:6)
country <- c("Brasil","brazil","Costa Rica","costarrica","suiza","Holanda")
example <- data.frame(number,country)

agrupamiento <- for (i in 1:nrow(example)){
  agrep(example$country[i], example$country, 
    max.distance = 0.1,ignore.case = TRUE)
}

使用stringdist::phonetic為您提供樣本數據集

library(stringdist)
example$ph=phonetic(example$country)
example
  number    country   ph
1      1     Brasil B624
2      2     brazil B624
3      3 Costa Rica C236
4      4 costarrica C236
5      5      suiza S200
6      6    Holanda H453

然后,我們拆分它

out <- split(example,f = example$ph )
out
$B624
  number country   ph
1      1  Brasil B624
2      2  brazil B624

$C236
  number    country   ph
3      3 Costa Rica C236
4      4 costarrica C236

$H453
  number country   ph
6      6 Holanda H453

$S200
  number country   ph
5      5   suiza S200

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM