我正在寻找一种方法来以成对方式计算点之间的分隔距离并将每个单独点的结果存储在随附的嵌套数据框中。成对距离计算嵌套数据框
例如,我有这个数据框(来自地图包),其中包含有关我们城市的信息,包括他们的物理位置。我放弃了其余的信息,并将坐标嵌套在嵌套的数据框中。我打算使用geosphere
包中的distHaversine()
来计算这些距离。
library(tidyverse)
df <- maps::us.cities %>%
slice(1:20) %>%
group_by(name) %>%
nest(long, lat, .key = coords)
name coords
<chr> <list>
1 Abilene TX <tibble [1 x 2]>
2 Akron OH <tibble [1 x 2]>
3 Alameda CA <tibble [1 x 2]>
4 Albany GA <tibble [1 x 2]>
5 Albany NY <tibble [1 x 2]>
...(With 15 more rows)
我已经研究过使用地图族与mutate耦合的功能,但是我很困难。理想的结果是如下形式:
name coords sep_dist
<chr> <list> <list>
1 Abilene TX <tibble [1 x 2]> <tibble [19 x 2]>
2 Akron OH <tibble [1 x 2]> <tibble [19 x 2]>
3 Alameda CA <tibble [1 x 2]> <tibble [19 x 2]>
4 Albany GA <tibble [1 x 2]> <tibble [19 x 2]>
5 Albany NY <tibble [1 x 2]> <tibble [19 x 2]>
...(With 15 more rows)
随着sep_dist tibbles看起来像这样:
location distance
<chr> <dbl>
1 Akron OH 1003
2 Alameda CA 428
3 Albany GA 3218
4 Albany NY 3627
5 Albany OR 97
...(With 14 more rows) -distances completely made up
如果位置是被比较命名的点(在这种情况下阿比林) 。
感谢您为我所描绘的方式提供了一个很好的选择。我接受了最初的答案,因为它更好地符合所述的结果和方法,但我很欣赏另一种做事方式。 – Jamesm131
我同意你应该接受基于帖子的答案。很高兴有帮助。 – CPak