2016-08-30 95 views
1

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

例如:

> 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 

我想在矢量得到的值:2.828427, 3, 2.828427

谢谢!

+2

的[此]可能的复制(http://stackoverflow.com/questions/9879608/how-do-i-manipulate-access-a-instance-of-dist-class-using-core-r) – akrun

回答

7

一个解决办法是在dist对象转换为matrix然后提取元素,其中行索引大于所述列索引较大的一个:

mat = as.matrix(dist(mymatrix)) 
mat[row(mat) == col(mat) + 1] 
# [1] 2.828427 3.000000 2.828427 
+0

谢谢!有用! – pateto777