R - 比较两个数据帧中的经度,纬度

时间:2015-04-16 11:11:38

标签: r latitude-longitude

我有两个数据帧df1,df2,包含经度(lon)和纬度(lat)值。 对于df1中的每一行,我想计算df2中每个条目的测地距离(以英里为单位),并返回距离小于30英里的条目数。

我现在所拥有的似乎有效,但速度极慢:

    require(Imap)
    n30 = function(lon,lat) {
        d=apply(df2[,c("lon","lat")],1,FUN=function(x) {
            gdist(lon,lat,x[1],x[2],units="miles")})
        return(sum(d<=30,na.rm=T))  
    }
    df1$n30 = apply(df1[,c("lon","lat")],1,FUN=function(x) n30(x[1],x[2]))

有人建议加快这个速度吗? 谢谢!

0 个答案:

没有答案