9

当我想加入数据时,有没有办法获取 rworldmap 包支持的国家、地区(?)和大陆的列表?

我做了一些谷歌搜索,刚刚开始使用 R。

谢谢。

4

5 回答 5

9

在我看来,该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"  
于 2011-10-14T11:39:20.753 回答
5

查看其中一个小插曲,这似乎应该有效:

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
于 2011-10-14T12:17:59.333 回答
2

我有理由确定名称与地图包中的名称不同。您可以使用此代码获取名称和代码列表。

library(rworldmap)
temp_map = getMap(resolution='coarse')
temp_map@data

名称在temp_map@data[['NAME']]. 但是,如果可以,最好使用其中一个 ISO 代码集。数据集之间的名称极其不一致,有时令人沮丧的差异会破坏它。例如,Cote d'Ivoire 可以带或不带抑扬符,有时即使显示相同,抑扬符也有不同的编码。

于 2013-01-11T22:10:15.427 回答
0

看一下中的map_data函数ggplot2。它将 R 映射转换为 data.frames。

于 2011-10-14T12:25:52.093 回答
0

我遇到了一个错误,导致我使用了这个解决方案 getMap()$NAME

于 2015-11-24T02:27:08.497 回答