【发布时间】:2012-05-23 21:29:26
【问题描述】:
这是一个高层次的一般性问题。周围有一些类似的例子,但有不同的、更简洁的例子。或许无法回答。 conn 是一个矩阵。
for (i in 2:dim(conn)[1]) {
for (j in 2:dim(conn)[1]) {
if ((conn[i, 1] == conn[1, j]) & conn[i, 1] != 0) {
conn[i, j] <- 1
conn[j, i] <- 1
}
else {
conn[i, j] <- 0
conn[j, i] <- 0
}
}
}
这直接来自 clusterCons 包中的cluscomp。
我的问题很简单:是否可以加快循环或将其矢量化? 作为 R 初学者,我看不到它,也不想以挫败感告终,因为这可能是不可能的。 我会接受任何可以说是或否的答案,并暗示可能涉及的工作量。
【问题讨论】:
-
请发布示例数据和预期结果。另外,试着用文字描述代码应该做什么。
-
是的,在这种情况下很可能可以找到一个非常快速的解决方案。我看看能不能快点煮熟。
-
矩阵
conn是否总是对称的? -
您的意思是“cluscomp”吗? clusterCons 中没有 conscomp。
-
查看 cluscomp 代码,似乎 (a) 这指的是 cluscomp,是的,并且 (b) 数据始终是对称的。嗯,我有个主意……
标签: r loops vectorization