这是纬度为经度&的位置数据框。如何快速确定点(纬度和经度)是否在一个国家内?
library(data.table)
a1=seq(10,60,1);a2=seq(70,140,1)
a3=lapply(a1,function(i){res=data.table(i,a2)})
pretb=rbindlist(a3,fill=T);
我想通过下面的代码来确认中国范围内的每一点。运行后找到
,总共用了近40分钟才得到结果。
library(maps)
> Sys.time()
[1] "2017-06-23 12:54:12 CST"
> bb=apply(pretb,1,function(ce){
+ aa=map.where(database="world", ce[3], ce[2])
+ })
> bb
> Sys.time()
[1] "2017-06-23 13:35:56 CST"
实际上,不能用这么长的时间来执行代码。有没有什么快速的方法来获得判断或其他更好的功能或包装效率更高?
你在哪里使用最新版本的地图包?在上一次更新v3.2(2017年6月8日)中,map.where()变得相当快。 –