除了更改正在更改 self loop
的 Adjacency 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/