我想找到最有效(最快)的方法来计算lat长坐标对之间的距离.
已经提出了一个不太有效的解决方案(这里)使用sapply和spDistsN1{sp}.我相信如果一个人会在运营商spDistsN1{sp}内部data.table使用,:=但我无法做到这一点,这可以更快.有什么建议?
这是一个可重复的例子:
# load libraries
library(data.table)
library(dplyr)
library(sp)
library(rgeos)
library(UScensus2000tract)
# load data and create an Origin-Destination matrix
data("oregon.tract")
# get centroids as a data.frame
centroids <- as.data.frame(gCentroid(oregon.tract,byid=TRUE))
# Convert row names into first column
setDT(centroids, keep.rownames = TRUE)[]
# create Origin-destination matrix
orig <- centroids[1:754, ]
dest <- centroids[2:755, ]
odmatrix <- bind_cols(orig,dest)
colnames(odmatrix) <- c("origi_id", "long_orig", "lat_orig", "dest_id", "long_dest", "lat_dest")
Run Code Online (Sandbox Code Playgroud)
data.tableodmatrix[ …Run Code Online (Sandbox Code Playgroud)