问题描述
我需要在我的数据框中添加一列,该列基于使用国家代码包的“ Country.region”列中提供的数据给出区域/大陆。我确实需要维护X1,X2,x3,x4,x5,x6列。
我的数据(气泡[189×37](S3:tbl_df / tbl / data.frame))如下:
data <-
read.table(header = TRUE,text = "
Country.Region X1 X2 X3 X4 X5 X6
Malawi 0 0 0 0 0 0
Algeria 0 0 0 0 0 3
China 151 725 1159 1322 1345 1350
Mauritania 0 0 0 0 0 0
Guinea 0 0 0 0 0 0
")
data
#> Country.Region X1 X2 X3 X4 X5 X6
#> 1 Malawi 0 0 0 0 0 0
#> 2 Algeria 0 0 0 0 0 3
#> 3 China 151 725 1159 1322 1345 1350
#> 4 Mauritania 0 0 0 0 0 0
#> 5 Guinea 0 0 0 0 0 0
解决方法
library(dplyr)
library(countrycode)
data <-
read.table(header = TRUE,text = "
Country.Region X1 X2 X3 X4 X5 X6
Malawi 0 0 0 0 0 0
Algeria 0 0 0 0 0 3
China 151 725 1159 1322 1345 1350
Mauritania 0 0 0 0 0 0
Guinea 0 0 0 0 0 0
")
data %>%
mutate(region = countrycode(sourcevar = Country.Region,origin = "country.name",destination = "region"))
#> Country.Region X1 X2 X3 X4 X5 X6 region
#> 1 Malawi 0 0 0 0 0 0 Sub-Saharan Africa
#> 2 Algeria 0 0 0 0 0 3 Middle East & North Africa
#> 3 China 151 725 1159 1322 1345 1350 East Asia & Pacific
#> 4 Mauritania 0 0 0 0 0 0 Sub-Saharan Africa
#> 5 Guinea 0 0 0 0 0 0 Sub-Saharan Africa