当我想加入数据时,有没有办法获取 rworldmap 包支持的国家、地区(?)和大陆的列表?
我做了一些谷歌搜索,刚刚开始使用 R。
谢谢。
在我看来,该rworldmap
软件包在软件包之上提供了一些附加功能maps
。
如果确实如此,您可以执行以下操作:
library(maps)
x <- map("world", plot=FALSE)
str(x)
List of 4
$ x : num [1:27121] -130 -130 -132 -132 -132 ...
$ y : num [1:27121] 55.9 56.1 56.7 57 57.2 ...
$ range: num [1:4] -180 190.3 -85.4 83.6
$ names: chr [1:2284] "Canada" "South Africa" "Denmark" "Great Lakes:Superior, Huron, Michigan" ...
- attr(*, "class")= chr "map"
这将提取maps
数据库,元素names
包含每个地图多边形的名称。这些名称实际上是一个多级列表,其中元素用冒号分隔。例如,要获取属于英国的多边形列表:
x$names[grep("UK", x$names)]
[1] "UK:Gibralter"
[2] "UK:Scotland:Isle of Lewis"
[3] "UK:Pitcairn Island"
[4] "UK:Guernsey"
[5] "UK:Great Britain"
[6] "UK:Scotland:Shetland Islands:Unst"
[7] "UK:Saint Mary's"
[8] "UK:Scotland:Shetland Islands:Yell"
[9] "UK:Northern Ireland"
[10] "UK:Bermuda"
[11] "UK:Tristan da Cunha Island"
[12] "UK:Scotland:Saint Kilda"
[13] "UK:Scotland:Ruhm"
[14] "UK:Scotland:Benbecula"
[15] "UK:Scotland:North Uist"
[16] "UK:Saint Helena Island"
[17] "UK:Scotland:Island of Skye"
[18] "UK:Scotland:Barra"
[19] "UK:Scotland:Island of Mull"
[20] "UK:Henderson Island"
[21] "UK:Isle of Sheppey"
[22] "UK:Jersey"
[23] "UK:Scotland:Coll"
[24] "UK:Scotland:Jura"
[25] "UK:Scotland:Island of Arran"
[26] "UK:Scotland:Tiree"
[27] "UK:Scotland:Islay"
[28] "UK:Ascension Island"
[29] "UK:Scotland:Colonsay"
[30] "UK:Scotland:Shetland Islands:Mainland"
[31] "UK:Scotland:South Uist"
[32] "UK:Scotland:Orkney Islands:Hoy"
[33] "UK:Gough Island"
[34] "UK:Scotland:Orkney Islands:Mainland"
查看其中一个小插曲,这似乎应该有效:
require(rworldmap)
data(countryExData)
countries <- countryExData[, 2]
EPI_regions <- countryExData[, 3]
GEO_regions <- countryExData[, 4]
如果您想在文法学校教授大陆部门,则需要对 GEO_regions 进行进一步处理:
> countryExData[ 1:10, 2:4]
Country EPI_regions
1 Angola Sub-Saharan Africa
2 Albania Central and Eastern Europ
3 United Arab Emirates Middle East and North Africa
4 Argentina Latin America and Caribbe
5 Armenia Middle East and North Africa
6 Australia East Asia and the Pacific
7 Austria Europe
8 Azerbaijan Central and Eastern Europ
9 Burundi Sub-Saharan Africa
10 Belgium Europe
GEO_subregion
1 Southern Africa
2 Central Europe
3 Arabian Peninsula
4 South America
5 Eastern Europe
6 Australia + New Zealand
7 Western Europe
8 Eastern Europe
9 Eastern Africa
10 Western Europe
我有理由确定名称与地图包中的名称不同。您可以使用此代码获取名称和代码列表。
library(rworldmap)
temp_map = getMap(resolution='coarse')
temp_map@data
名称在temp_map@data[['NAME']]
. 但是,如果可以,最好使用其中一个 ISO 代码集。数据集之间的名称极其不一致,有时令人沮丧的差异会破坏它。例如,Cote d'Ivoire 可以带或不带抑扬符,有时即使显示相同,抑扬符也有不同的编码。
看一下中的map_data
函数ggplot2
。它将 R 映射转换为 data.frames。
我遇到了一个错误,导致我使用了这个解决方案 getMap()$NAME