我有一个包含多个气象站的主数据库。每个站都有十进制坐标。下面只是一个例子,因为坐标是组成的
stationid lon lat
1a 80 104
1b 84 110
1c 85 111
此外,我有一个较小的地点数据集。我需要将每个地方与主数据库中最近的气象站相匹配(希望有指定的距离阈值)
place lon lat
2a 80.5 104.1
3b 83 109
因此生成的较小数据库将显示
place lon lat stationid
2a 80.5 104.1 1a
3b 83 109 1b
将不胜感激
最佳答案
试试 geosphere::distm
+ max.col
df2$stationid <- df1$stationid[max.col(-distm(rev(df2[-1]), rev(df1[-1])))]
给出
place lat lon stationid
1 2a 80.5 104.1 1a
2 3b 83.0 109.0 1b
关于r - 如何根据坐标寻找最近的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66837461/