将城镇/村庄分为城市/社区

时间:2017-07-20 12:13:59

标签: r data-cleaning

我在R中有这个问题,我有一个西班牙社区列表,每个社区内都有一个城镇/城市列表。

例如,这是加泰罗尼亚社区内的市政名单。

https://en.wikipedia.org/wiki/Municipalities_of_Catalonia

因此;加泰罗尼亚是一个社区,在这个社区中,它有一个城镇/城市列表,我想分组/分配一个新的价值'Catalona'。

我在我的数据集中列出了所有城市/城镇/城市,我想将它们分组到以下社区;安达卢西亚,加泰罗尼亚,巴斯克地区,马德里等。

首先,我如何将这些行分组到社区列表中?

例如; el prat de llobregat是加泰罗尼亚的一个城市,所以我想将此地址分配给Catalonia地区。赫塔菲是马德里的一个自治市,所以我想将其分配给马德里的价值。阿利坎特是瓦伦西亚的一个城市,所以我想把这个分配给瓦伦西亚。等

这是我的第一个问题,如果你能够帮助解决这个问题,我会非常感激。

但是,我的数据集并不干净,我尽力删除西班牙语口音,删除市政名称中不必要的代码标识符,但仍然包含一些小错误。例如,castellbisbal是加泰罗尼亚的一个自治市,但有些条目的拼写错误非常小,即包括1'l'而不是2',拼写错误; (比斯瓦尔堡)。

这些错误是人为错误,非常小,有什么方法可以解决这个问题吗?

我正在考虑所有正确拼写的名称的向量,然后根据一定比例的重复名称重命名拼写错误的名称,这可行吗?例如,castellbisbal长度为13个字符,错误为1个字符,错误率低于8%。我可以根据错误率重命名值吗?

您对如何继续第二部分有任何建议吗?

任何提示/建议都会很棒。

1 个答案:

答案 0 :(得分:0)

至于拼写错误,你试过soundex算法吗?它就是为此而且至少有两个R包实现它。

library(stringdist)

phonetic("barradas")
[1] "B632"
phonetic("baradas")
[1] "B632"

相同单词的soundex代码与包phonics相同。

library(phonics)

soundex("barradas")
[1] "B632"
soundex("baradas")
[1] "B632"

你所要做的就是比较soundex代码,而不是单词本身。请注意,soundex是专为英语设计的,所以它只能处理英语字符而不是重音符号。但是你说你已经在照顾那些,所以它可能与你必须要处理的词有关。