R,gDistance,rgeos中的坐标匹配

时间:2018-08-14 20:12:18

标签: r matching coordinate

我希望将坐标列表与第二个坐标列表匹配,以返回第二个列表中最接近的点。我在R工作。

为了进行测试,我只有一个小样本,一个列表中有一个坐标,另一个列表中有9个坐标。每个“列表”都是一个数据框,如图所示,其中包含一个ID#(“ PID”)和“纬度”和“纬度”坐标列

> set1
  PID     Lat      Lon
1 2050441 38.2488 -90.4833

> set2
   PID      Lat       Lon
2  2050489 39.79233 -93.56323
3  2050506 39.72001 -91.40049
4  2050568 38.69969 -93.26532
5  2050570 37.93161 -91.77081
6  2050582 39.33211 -91.19534
7  2050623 39.06586 -93.73700
8  2050635 36.62708 -90.81711
9  2050647 37.84869 -90.49491
10 2050661 39.13082 -93.20838

我试图使它们成为空间点,并使用gDistance进行比较。理想情况下,我想要一个包含Set 1的输出,其中包含另一列显示距Set 2最近的点。

我尝试过:

set1sp <- SpatialPoints(set1)
set2sp <- SpatialPoints(set2)
set1$nearest_in_set2 <- which.min( sapply(gDistance(set1sp, set2sp)))

但是它返回一个错误: $<-.data.frame*tmp*中的错误,最近的设置2,值= c(2 = 1公升: 替换有9行,数据有1

所以我尝试对其进行编辑以简化为:

set1$nearest_in_set2 <- which.min( sapply(gDistance(set1sp, set2sp)))

但这会返回错误:

match.fun(FUN)中的错误:缺少参数“ FUN”,没有 默认

任何帮助将不胜感激,能够对我拥有的非常大的数据集执行此操作真是太棒了,因此,如果有比此方法快的方法,我也很高兴听到!!

0 个答案:

没有答案