【发布时间】:2018-03-20 16:47:25
【问题描述】:
我有两组坐标(基础和目标)作为两个数据框。
base.df <- data.frame(cbind(LONG = c(-73.94006,-73.95616,-73.86548,-73.99118,-73.99801,
-73.96208,-73.95544,-74.09251,-73.94317,-73.98913),
LAT = c(0.78963,40.65378,40.83767,40.75533,40.74759,
40.71327,40.81450,40.62554,40.83660,40.57415)))
target.df <- data.frame(cbind(long = c(-74.00754,-74.01252,-74.00525,-74.00594,-74.00668,-73.99290),
lat = c(40.70347,40.71007,40.71005,40.71546,40.71976,40.71521)))
我的目标是获取基本数据帧的每一行并使用spDistsN1() 来获得该行(基本)与目标数据帧的每一行之间的不同距离。在许多距离中,我想要最接近的距离(使用min()?)并将最短距离附加到新向量。完成后,我应该只有 10 个数据点可以cbind() 返回基本数据帧。我知道apply() 可能有用,但我对使用它或在 R 中编写函数不是很熟悉,有人可以帮忙吗?
【问题讨论】:
-
请避免发布图片。以文本格式发布您的数据,以便每个人都可以使用它们。
-
感谢提醒,我会通过附加可重现代码的方式进行更改
-
只需使用
spDists而不是spDistsN1。从spDists(as.matrix(base.df),as.matrix(target.df),longlat=TRUE)开始
标签: r apply geospatial distance sp