我无法让下面的代码工作。我正在尝试计算数据集中所有可能的经纬度组合之间的距离。
我将使用的示例输入数据:
p <- data.frame(lat=runif(6,-90,90), lon=runif(6,-180,180) );
Run Code Online (Sandbox Code Playgroud)
我无法让下面的代码工作。距离函数不起作用,所以我尝试了distm,但这也给了我一个错误信息。错误消息列在代码下方。
d <- setNames(do.call(rbind.data.frame,
combn(1:nrow(p), 2, simplify = FALSE)),
c('p1','p2'));
d$dist <- sapply(1:nrow(d), function(r){
distance(p$lat[d$p1[r]], p$lat[d$p2[r]], p$lon[d$p1[r]], p$lon[d$p2[r]])
})
d$dist <- sapply(1:nrow(d), function(r){
distm(p$lat[d$p1[r]], p$lat[d$p2[r]], p$lon[d$p1[r]], p$lon[d$p2[r]])
})
#> Error in distm(p$lat[d$p1[r]], p$lat[d$p2[r]], p$lon[d$p1[r]], p$lon[d$p2[r]]) :
#> unused argument (p$lon[d$p2[r]])
Run Code Online (Sandbox Code Playgroud)