2014-10-22 29 views
1

我有我需要轉換成標準格式(iso3c)的國家列表。有些名稱很長,其他的名稱有2或3位數字,其他名稱不顯示「非洲」而不是「南非」。我已經做了一些研究,並在R中使用countrycode包。但是,當我試圖使用「正則表達式」R似乎不承認它。我得到下面的錯誤:R:國家代碼包不支持正則表達式作爲原點

> countrycode(data,"regex","iso3c", warn = TRUE) 
Error in countrycode(data, "regex", "iso3c", : 
Origin code not supported 

我需要做的任何其他選項?

謝謝!

+2

你好。爲了提供一個可重現的例子,你可以使用'reproduce()'。說明在這裏:http://bit.ly/SORepro - [如何使一個偉大的R可重現的例子](http://bit.ly/SORepro) – 2014-10-22 05:17:16

+0

@dixi請檢查此鏈接https://github.com/ vincentarelbundock/countrycode我猜''正則表達式'不是一個選項在這裏。相反,當你使用任何選項'cown','cowc'等時,它使用'countrycode_data'中指定的'regex'來進行轉換。 – akrun 2014-10-22 05:29:34

+0

我看到了..我使用了那個文檔,但是沒有理解它的正確性。謝謝! – dixi 2014-10-22 06:30:10

回答

0

您可以在這裏查看國家代碼包的自述文件https://github.com/vincentarelbundock/countrycode,或者您可以通過在R控制檯?countrycode::countrycode中輸入此幫助文件來獲取R中的幫助文件。

「regex」不是有效的「原點」值(countrycode()函數中的第2個參數)。您必須使用cowc,cown,eurostat,fao,fips105,imf,ioc,iso2c,iso3c,iso3n,p4_ccode, p4_scode「,」un「,」wb「,」wb_api2c「,」wb_api3c「,」wvs「,」country.name「,」country.name.de「(使用最新版本0.19)。

如果您使用以下兩種「出身」的價值觀,正則表達式匹配將自動執行:如果您使用與自定義詞典「country.name」或「country.name.de」

新(從版本0.19開始)custom_dict參數,您必須將origin_regex參數設置爲TRUE以使正則表達式匹配發生。

在你的榜樣,這應該做你想做的: countrycode(data, origin = "country.name", destination = "iso3c", warn = TRUE)