【发布时间】:2020-08-26 04:22:23
【问题描述】:
我需要一些帮助。我正在尝试合并具有不同列数和行数的 2 个数据帧(WIDE.2018 和 WIDE.2015)。对不起,我不能分享数据。两者都有一组相似的具有空间坐标的列(lon 和lat)。我试图通过最好的独特对(例如optimal)或nearest 与replace=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),])
提前致谢!
【问题讨论】:
-
您可能需要在此处进行更好的描述。如果您试图为 2018 年的每个点找到 2015 年最接近的点,2015 年的多个点是否可以映射到单个点是 2018 年,反之亦然?或者您是否试图找到最佳的 1:1 匹配,以最小化所有匹配中的欧几里德距离,确保每个点在另一个 data.frame 中只有一个匹配项(有些点在较长的 data.frame 中不匹配)?跨度>
-
你好,第二个选项是我要找的。span>
标签: r merge matching coordinate-systems array-merge