0

我有一个包含欧洲国际投资信息的数据集,并协调了有关 NUTS3 的信息。对于每项投资,我都有城市和坐标(lat1,long1)。我想计算每个城市到我拥有的每个 NUTS 3 的距离——> EG Paris 到 Paris、Paris_Lyone、Paris_Orly、Paris_Maidenhead 等。我想为我拥有的所有城市循环这个机制,所以最后我对每个城市都有一个矩阵,其中包括到每个 NUTS 的距离。我尝试使用 geosphere,但它只给了我行之间的距离。

summary(coordinate$NUTS_BN_ID)
summary(fdimkt$NUTS_BN_ID)


##merge dataset
df <- merge(fdimkt,coordinate, by="nutscode", all = FALSE)
View(df)
fix(df)

#install.packages("dplyr")
library(dplyr)

df %>% dplyr::rename(lat1= `_destination_latitude`, long1= `_destination_longitude` )


library(geosphere)
library(data.table)
#dt <- expand.grid.df(df,df)

setDT(df)[ , dist_km := distGeo(matrix(c(`_destination_latitude`, `_destination_longitude`), ncol = 2), 
                                matrix(c(`lat2`, `long2`), ncol = 2))/1000]
summary(df$dist_km)

这不起作用,因为它逐行返回我的距离,但我实际上想要从每个城市到我拥有的所有 NUTS3 坐标的距离

有人可以帮我吗?

我不确定如何发布我的 dt,我认为这可能有助于获得更多建议。

4

0 回答 0