R“maps”包中的“map”函数输入

时间:2013-12-02 23:41:54

标签: r maps

我有一个从文件中读取的国家/地区的字符向量,例如

countries <- vector(mode="character")
countries <- c("Germany", "UK", "Canada", "USA", "Colombia", "Switzerland", "Syria", "Portugal")

我想将这个向量用作'maps'包中'map'函数的输入;但是,这会导致错误:

library(maps)
library(mapdata)
map(database="world", regions="countries")
Error in map.poly(database, regions, exact, xlim, ylim, boundary, interior, : 
  no recognized region names

我尝试过使用矢量中的一个项目,所以国家[1],但这会复制相同的错误:

map(database="world", regions="countries[1]")
Error in map.poly(database, regions, exact, xlim, ylim, boundary, interior,  : 
  no recognized region names

然而,

ger <- countries[1]
map(database="world", regions="ger")

完美无瑕。我无法真正地围绕着这个;地图只是不采取像“国家[1]”这样的输入,或者我在这里监督某些事情(可能是显而易见的)?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

试试这个:

 map(database="world", regions=map("world", plot=FALSE)$names[
                 unlist( lapply(countries, grep, map("world", plot=FALSE)$names) ) ])

在远东地区似乎有一些殖民地藏品,这些地图上的小斑点对我来说都是如此。绘制了334个区域。 (现在我才注意到Josh已经给你一个更紧凑的解决方案了。)

map(database="world", regions="countries[1]")的问题在于您在国家/地区矢量旁边加引号。这应该有效:map(database="world", regions=countries[1])