R-计数距离花费太长



我有一个超过1000万行的数据框架。我想计算拉链对之间的距离,然后将它们添加到NEM列中。我试图运行脚本(见下文),但需要太长(超过5个小时)。任何提示如何提高此过程的速度?我使用地质包装来计数拉链对之间的距离。

for (i in seq_len(nrow(dm_kekk)))
{
dm_kekk$dist[i]<-distm (c(dm_kekk$lon[i], dm_kekk$lat[i]), 
                         c(dm_kekk$lon_ok[i], dm_kekk$lat_ok[i]), 
                         fun = distHaversine)
}

谢谢!

始终为您的数据提供一些示例,以及您期望使回答问题更容易的输出。一种选择是让您仅平行该过程或尝试使用dplyr突变。

library(doParallel)
cores <- detectCores() -1
cl <- makeCluster(cores)
registerDoParallel(cl)
oper_dist <- foreach(i=1:seq_len(nrow(dm_kekk))) %dopar% {
library(geosphere)
  distm (c(dm_kekk$lon[i], dm_kekk$lat[i]), 
                     c(dm_kekk$lon_ok[i], dm_kekk$lat_ok[i]), 
                     fun = distHaversine)
}
stopCluster(cl)
dm_kekk$dist <- do.call(c, oper_dist)

或使用mutate

library(dplyr)
dm_kekk %>% mutate(dist = distm(lon, lat, lon_ok, lat_ok, fun = distHaversine))

相关内容

  • 没有找到相关文章

最新更新