转换国家代码的神奇R包!
关注公众号,发送R语言或Python,获取学习资料!
不同的数据源使用不同的编码方案来表示国家(例如CoW或ISO)。这带来了两个主要问题:(1)其中一些编码方案不够直观,(2)合并这些数据需要从一个编码方案转换到另一个编码方案,或者从较长的国家名称转换到一个编码方案。
countrycode
包可以转换40多个不同的国家编码方案,以及转换600多个不同语言和格式的国家名称。
也许很多国家代码你都没听过,但保不准你以后就需要了呢?所以这个包还是非常实用的,没有花里胡哨的功能,就是转换,值得收藏!
安装
支持的国家代码
countrycode
转换国家和代码
添加国旗
不同语言和格式的国家名称转换
自定义转换数据框
countryname
安装
# 2选1
install.packages("countrycode")
remotes::install_github('vincentarelbundock/countrycode')
支持的国家代码
library(countrycode)
可以通过运行?codelist
查看支持哪些国家编码方式。
countrycode
转换国家和代码
可以转换单个或一组国家名称或编码。
# ISO to Correlates of War
countrycode('DZA', origin = 'iso3c', destination = 'cown')
## [1] 615
# English to ISO
countrycode('China', origin = 'country.name', destination = 'iso3c')
## [1] "CHN"
# 德语 to 阿拉伯语
countrycode(c('Algerien', 'Albanien'), origin = 'country.name.de', destination = 'un.name.ar')
## [1] "<U+0627><U+0644><U+062C><U+0632><U+0627><U+0626><U+0631>" "<U+0623><U+0644><U+0628><U+0627><U+0646><U+064A><U+0627>"
转换多个也是一样的用法:
cowcodes <- c("ALG", "ALB", "UKG", "CAN", "USA")
countrycode(cowcodes, origin = "cowc", destination = "iso3c")
## [1] "DZA" "ALB" "GBR" "CAN" "USA"
添加国旗
还可以把国家名字转换成国旗!但是这个功能经常出问题,因为国旗和设备的编码问题,能不能用看缘分。。比如我就不能用。
library(gt)
library(countrycode)
Countries <- c('Canada', 'Germany', 'Thailand', 'Algeria', 'Eritrea')
Flags <- countrycode(Countries, 'country.name', 'unicode.symbol')
dat <- data.frame(Countries, Flags)
gt(dat)
不同语言和格式的国家名称转换
很多国家有多种不同的叫法,比如England,Britain,America,the united states of America等,都是可以转换的,不过也有一些不能。
“由于编码原因,R里面很多语言显示不出来!
countrycode('United States of America', origin = 'country.name', destination = 'cldr.name.en')
## [1] "United States"
countrycode('United States of America', origin = 'country.name', destination = 'cldr.short.en')
## [1] "US"
查看支持哪些国家名称及别名等:
head(cldr_examples)
Code Example
1 cldr.name.af Franse Suidelike Gebiede
2 cldr.name.agq TF
3 cldr.name.ak TF
4 cldr.name.am የፈረንሳይ ደቡባዊ ግዛቶች
5 cldr.name.ar الأقاليم الجنوبية الفرنسية
6 cldr.name.ar_ly الأقاليم الجنوبية الفرنسية
自定义转换数据框
countrycode
通过custum_dict
参数接受用户提供的字典。这些字典将覆盖内置的国家代码字典。例如,以下是一个用于处理美国州名的正则表达式和缩写的字典。
library(countrycode)
url = "https://raw.githubusercontent.com/vincentarelbundock/countrycode/master/data/custom_dictionaries/us_states.csv"
state_dict = read.csv(url, stringsAsFactors=FALSE)
head(state_dict)
## state abbreviation state.regex
## 1 Alabama AL .*alabama.*
## 2 Alaska AK .*alaska.*
## 3 Arizona AZ .*arizona.*
## 4 Arkansas AR .*arkansas.*
## 5 California CA .*california.*
## 6 Colorado CO .*colorado.*
countrycode('State of Alabama',
origin = 'state',
destination = 'abbreviation',
custom_dict = state_dict,
origin_regex = TRUE)
## [1] "AL"
countrycode(c('MI', 'OH', 'Bad'), 'abbreviation', 'state', custom_dict=state_dict)
## [1] "Michigan" "Ohio" NA
ISOcodes
包提供了额外的国家编码,包括ISO15924,ISO639,ISO8859,也可以通过custom_dict
参数使用。
# install.packages("ISOcodes")
countrycode('abk', 'Alpha_3_B', 'Name', custom_dict = ISOcodes::ISO_639_2)
## [1] "Abkhazian"
countryname
这个函数主要用于把任何语言间的国家名字进行转换,相当于一个字典了。
“不支持中文!
x <- c('ジンバブエ', 'Afeganistãu', 'Barbadas', 'Sverige', 'UK', '中国')
countryname(x)
## [1] "Zimbabwe" NA "Barbados" "Sweden" "UK" NA
以上就是今天的内容,希望对你有帮助哦!欢迎点赞、在看、关注、转发!
欢迎在评论区留言或直接添加我的微信!
End
欢迎关注公众号:医学和生信笔记
“医学和生信笔记 公众号主要分享:1.医学小知识、肛肠科小知识;2.R语言和Python相关的数据分析、可视化、机器学习等;3.生物信息学学习资料和自己的学习笔记!
往期回顾
长数据变为宽数据的7种情况!
宽数据变为长数据的5种情况!
使用lubridate处理日期时间
让你的图片中文不再乱码!