R: map.match 在世界数据库 returns "Error in tolower(patterns) : object 'patterns' not found"

R: map.match on world database returns "Error in tolower(patterns) : object 'patterns' not found"

我正在尝试使用 R 中的地图包创建空间地图。但是,当我尝试使用 world 数据库使用 match.map() 时,我收到以下错误:

Error in tolower(patterns) : object 'patterns' not found

这是因上述错误而失败的代码示例:

match.map("world", "USA")

但是,在另一个数据库(例如 statelegacy_world)上执行匹配工作正常。

match.map("state", "Iowa")

match.map("legacy_world", "USA")

此外,如果我使用地图功能并指定要匹配的区域,这也符合预期。

map("world", "USA")

所以问题似乎仅限于 map.match() 函数和 world 数据库。

我正在使用 Windows 7 64 位、R 3.2.2、RStudio 0.99.489 和最新的地图包(即 3.0.0-2)。

如果有人对导致此问题的原因有任何想法,请告诉我。与此同时,我将研究一种解决方法,包括使用 namesonly() 命令从世界数据库中提取名称并对名称执行外部匹配以获取多边形索引。

马修

糟糕。这是代码中的一个错误,确实仅针对 'world' 数据库触发。错误修复版本将是地图 3.0.1,应该会在一两天内出现在 CRAN 上。

到那时,由于该错误仅在 'world' 时触发,您可以尝试通过创建临时多边形数据库来解决它。

world <- map(plot=FALSE,resolution=0)

match.map(world,'USA')  # notice : world is unquoted

你会收到一个警告(也将在 3.0.1 中修复)但它似乎工作正常。

对于这个错误,我深表歉意。

亚历克斯