除了更改正在更改 self loopAdjacency matrix 之外,如何将 c(i,i)=1 添加到图形中,igraph R 包中是否有执行此操作的函数?

编辑 :图形创建:

  network=read.csv(file.choose())
  network[,1]=as.character(network[,1])
  network[,2]=as.character(network[,2])
  mygraph=graph.data.frame(network,directed=TRUE)
  E(mygraph)$weight=as.numeric(network[,3])

可重现的 示例:
karate <- graph.famous("Zachary")
E(karate)$weight <- 2
adjacency<-get.adjacency(karate,
              attr="weight", edges=FALSE, names=TRUE)
for (i in 1:vcount(karate)){
      adjacency[i,i]<-1
    }
karate2<-graph.adjacency(adjacency, mode="directed", weighted=TRUE)

我正在寻找一个更快更简单的解决方案,也许是一个功能来做到这一点。

最佳答案

要为 karate 示例中的每个顶点添加一个自循环,只需执行

karate[from=V(karate), to=V(karate)] <- 1

这会给你

关于r - 如何在 igraph R 中创建自循环?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30066255/

10-11 16:55