2017-07-20 46 views
1

我在R有這個問題,我有一個西班牙社區名單,每個社區裏面都有一個城鎮名單。將城鎮/村莊分爲城市/社區

例如,這是加泰羅尼亞社區內的城市列表。

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

左右;加泰羅尼亞是一個社區,在這個社區內,它有一個城鎮/城市名單,我希望將其分配/分配一個新的價值'Catalona'。

我有我的數據集中所有城市/城鎮/城市的列表,我希望將它們分組到社區中,例如;安達盧西亞,加泰羅尼亞,巴斯克地區,馬德里等

首先,我該如何將這些行分組到社區列表中?

例如; el prat de llobregat是加泰羅尼亞境內的一個城市,所以我想把它分配給加泰羅尼亞地區。赫塔菲是馬德里的一個城市,所以我想把它分配給馬德里的價值。阿利坎特是瓦倫西亞的一個城市,所以我想把它分配給巴倫西亞。等

這是我的第一個問題,如果你能夠幫助這一點,我會非常感激。

但是,我的數據集不是那麼幹淨,我盡我所能去除了西班牙語的口音,刪除了市鎮名稱中不必要的代碼標識符,但仍然包含一些小錯誤。例如,castellbisbal是加泰羅尼亞的一個城市,然而一些條目有很小的拼寫錯誤,即包括1'l'而不是2'拼寫; (比斯瓦爾堡)。

這些錯誤是人爲錯誤,非常小,有沒有辦法解決這個問題?

我在想所有拼寫正確的名字的矢量,然後根據不正常的百分比重新命名不正確的拼寫名稱,可以這樣工作嗎?例如,castellbisbal的長度爲13個字符,並且有1個字符的錯誤,錯誤率低於8%。我可以根據錯誤率重命名值嗎?

關於如何繼續第二部分,您有什麼建議嗎?

任何提示/建議將是偉大的。

+0

歡迎來到Stackexchange。你有沒有做過關於如何實現這一目標的研究?如果你給出你已經嘗試過的和你失敗的地方的代碼示例,人們更有可能幫助你。一個[可重現的例子](https://stackoverflow.com/q/5963269/7508461)朝這個方向發展很長。 – Numb3rs

+0

嗨,感謝您的光臨, 我目前正在做我的研究,目前我有一個大城市和城市的名單,我目前將這些手工分配到西班牙50個左右的社區,一旦完成我將上傳結果 – user113156

+0

只是一個小小的更新:我設法解決了第一部分,我很幸運有數字標識,我可以合併數據集,允許我通過獨特的社區ID合併社區和城市。 我仍然堅持第二部分,所以在這裏的任何幫助將不勝感激。 – user113156

回答

0

至於拼寫錯誤,你有沒有試過soundex算法?這是爲了這個目的,至少有兩個包實現它。

library(stringdist) 

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

並且與包phonics相同的單詞的soundex代碼是相同的。

library(phonics) 

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

您只需要比較soundex代碼,而不是單詞本身。請注意,soundex是爲英語設計的,所以它只能處理英文字符,而不是口音。但是你說你已經在照顧那些人了,所以它可能適用於你必須處理的話。