【发布时间】:2023-03-10 18:49:01
【问题描述】:
我正在尝试从包含两个相邻点之间距离的数据框中生成我最能描述为成对距离矩阵的内容。这些不是欧几里得距离,它们本质上是海岸线上点之间的距离,因此距离不是直线。我能够使用地理空间数据在包riverdist 中生成一个距离矩阵,但这只是两点之间的完整距离,我现在正在尝试做两点之间距离的一个子集。
我一直在寻找一种方法来做到这一点,但一直空手而归。任何帮助将非常感激。
这是一个例子:
我有这些数据:
mat <- matrix(
c(
3, #distance between 1 and 2
10, #distance between 2 and 3
7, #distance between 3 and 4
9 #distance between 4 and 5
),
nrow=4, ncol=1, dimnames = list(c("site1","site2","site3","site4"),c("dist")))
> mat
dist
site1 3
site2 10
site3 7
site4 9
我想生成以下“距离”矩阵:
site1 site2 site3 site4 site5
site1 0
site2 3 0
site3 13 10 0
site4 20 17 7 0
site5 29 26 16 9 0
对于这项任务,原始数据可能会更好地组织如下:
SiteA SiteB Dist
1 site1 site2 3
2 site2 site3 10
3 site3 site4 7
4 site4 site5 9
有什么建议吗?
【问题讨论】:
标签: r matrix pairwise pairwise-distance