我有一个从文件中读取的国家/地区的字符向量,例如
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]”这样的输入,或者我在这里监督某些事情(可能是显而易见的)?谢谢你的帮助!
答案 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])