R中空间坐标2个不相等的数据帧的最优合并?

问题描述 投票:0回答:1

我在这里需要一些帮助。我正在尝试合并2个数据帧(WIDE.2018WIDE.2015)的列数和行数不同。对不起,我不能分享数据。两者都有类似的空间坐标的列数(lonlat). 我试图通过最佳的唯一对来合并它们两个(例如 optimal)或通过 nearestreplace=F (我用一个比喻来形容 MatchIt 术语)。) 我只能处理一个 cbind 找到最接近的距离,但允许重复观测。

正如Geoffrey所提到的(thks!),我正在寻找最佳的1:1匹配,使所有匹配的欧氏距离最小化,确保每个点在另一个data.frame中只有一个匹配(在较长的data.frame中有些点是不匹配的)。

library (geosphere)

D = distm(WIDE.2018[, c("lon","lat")], WIDE.2015[, c("lon","lat")])

m1<-cbind(WIDE.2018, WIDE.2015[apply(D, 1, which.min),])

先谢谢你了!

r merge matching coordinate-systems array-merge
1个回答
1
投票

根据这个答案。

两组点之间的最佳匹配

我想你要找的是匈牙利算法。 这里有一个在R中的实现,它声称可以使用矩形矩阵(例如,不相等的样本大小)。

https:/rdrr.iocranRcppHungarianmanHungarianSolver.html。

我相信,所需矩阵中的权重将是点与点之间的距离。

© www.soinside.com 2019 - 2024. All rights reserved.