从R中的距离矩阵中提取对角线

pat*_*777 0 r distance matrix diagonal distance-matrix

我想知道如何从距离矩阵中提取第一个对角线的值.

例如:

> mymatrix
     [,1] [,2]
[1,]    1    2
[2,]    3    4
[3,]    6    4
[4,]    8    6

> dist(mymatrix)

         1        2        3
2 2.828427                  
3 5.385165 3.000000         
4 8.062258 5.385165 2.828427
Run Code Online (Sandbox Code Playgroud)

我想在向量中得到值: 2.828427, 3.000000, 2.828427

谢谢!

Psi*_*dom 11

一种解决方法是将dist对象转换为matrix然后提取行索引比列索引大1的元素:

mat = as.matrix(dist(mymatrix))
mat[row(mat) == col(mat) + 1]
# [1] 2.828427 3.000000 2.828427
Run Code Online (Sandbox Code Playgroud)