当我使用igraph时,如何提高我的R代码的速度?

当我使用igraph时,如何提高我的R代码的速度?,r,cluster-analysis,matrix,graph-theory,igraph,R,Cluster Analysis,Matrix,Graph Theory,Igraph,当我运行下面的代码时,它需要像永远一样运行。你知道如何加速代码吗?比如改变矩阵的布局或者散列或者 我的目标是在最末端创建一个边节点三角形邻接矩阵,并将其用于联合聚类 library(igraph) set.seed(1) g <- erdos.renyi.game(100, .6) #print(g) plot(g) ij <- get.edgelist(g) print(ij) library(Matrix) m <- sparseMatrix( i = rep(seq(

当我运行下面的代码时,它需要像永远一样运行。你知道如何加速代码吗?比如改变矩阵的布局或者散列或者

我的目标是在最末端创建一个边节点三角形邻接矩阵,并将其用于联合聚类

library(igraph)
set.seed(1)
g <- erdos.renyi.game(100, .6)
#print(g)
plot(g)
ij <- get.edgelist(g)
print(ij)
library(Matrix)
m <- sparseMatrix(
  i = rep(seq(nrow(ij)), each=2),
  j = as.vector(t(ij)),
  x = 1
)
print(m)
# Maximal cliques of size at least 3
cl <- maximal.cliques(g)
print(cl)
cl <- cl[ sapply(cl, length) > 2 ]
print(cl)
# Function to test if an edge is part of a triangle
triangle <- function(e) {
  any( sapply( cl, function(u) all( e %in% u ) ) )
}
print(triangle)
# Only keep those edges
kl <- ij[ apply(ij, 1, triangle), ]
print(kl)
# Same code as before
m <- sparseMatrix(
  i = rep(seq(nrow(kl)), each=2),
  j = as.vector(t(kl)),
  x = 1
)
print(m)
这就是代码被卡住的地方:

我注意到你在这两个方面都提出了一些很好的问题&mdash;@MonaJalal。然而,有些像这样的人属于某某,有些像某某属于某某。如果您需要解释的是统计数据可视化等概念,则应在此处提问;如果你需要解释的是如何让R做某事,或者为什么R做某事,例如,崩溃,就像在这个例子中,Q是这样的。由于您是CV新手,请带我们的课程学习更多关于CV工作原理的知识。谢谢您。你能把这个寄给SO吗?我不确定这应该贴在哪里。谢谢。它很快就会被迁移。这有点误导,因为屏幕截图只是显示输出,而不是实际运行的代码。你的代码卡在Applyj,1,三角形上。我确信可以加快速度,但实际上,从头开始编写代码以查找至少一个三角形的所有边会更容易。