2016-08-30 2 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-elements-of-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

Смежные вопросы