【发布时间】:2013-09-23 19:30:36
【问题描述】:
我有一个 R 问题。我有一个算法可以做到这一点,但想知道是否有更简洁的方法来执行以下操作:
假设你有以下矩阵:
[,1] [,2] [,3] [,4] [,5]
[A,] 0 0 0 0 1
[B,] 0 0 0 1 1
[C,] 0 0 1 1 1
[D,] 0 0 1 1 0
[E,] 1 0 0 0 0
[F,] 1 1 1 0 0
现在我想创建一个每行与另一行的差异矩阵(即距离矩阵),类似于(虽然我将它填满了一半,但它只是获取顶部的镜像):
[,A] [,B] [,C] [,D] [,E] [,F]
[A,] 0
[B,] 1 0
[C,] 2 1 0
[D,] 3 2 1 0
[E,] 2 3 4 3 0
[F,] 4 5 4 3 2 0
我的方法是使用循环将每一行的列与下面的相应行列进行比较,但对于大型矩阵,它效率不高。关于如何更好地做到这一点的任何想法?
谢谢
【问题讨论】:
-
使用
dist(t(mat),type="manhattan")(或类似的东西)?