Отсутствие какой-либо копии df или даже четкое ее описание - это предположение.Код:
!diag(dim(dist.name)[1] )
... создает матрицу логических квадратов тех же размеров, что и dist.name
, и при использовании в качестве индекса выбирает недиагональные элементы, таким образом:
min.name <- min( dist.name[!diag(dim(dist.name)[1] )]
После восстановления копии матрицы dist.name мы видим, что она по-прежнему находит все 0, которые были в недиагональных элементах.Так что, возможно, я не понимаю цели, но отрицание diag (5) удаляет все диагональные нули:
dist.name <- matrix( scan(text="
0 3 0 3 1
1 0 3 5 0
2 3 0 0 5
3 0 1 0 5
0 3 2 1 0"), 5,5,byrow=TRUE, dimnames=list(c( 'a1', 'a2', 'a3', 'a4', 'a5'), c( 'a1', 'a2', 'a3', 'a4', 'a5')) )