igraph permute()方法错误

igraph permute()方法错误,r,graph,nodes,igraph,permute,R,Graph,Nodes,Igraph,Permute,我想对一个图进行节点置换。请参见下面我创建的测试图。当我使用igraph R库中的permute()方法时,在新的graph permute()中不会发生任何更改。发生了什么事 testG <- vector(mode="list", length=6); #assign initial probabilities testG = list("gene1"=0, "gene2"=0, "gene3"=0, "gene4"=0, "gene5"=0, "gene6"=0); adjacen

我想对一个图进行节点置换。请参见下面我创建的测试图。当我使用igraph R库中的permute()方法时,在新的graph permute()中不会发生任何更改。发生了什么事

testG <- vector(mode="list", length=6); #assign initial probabilities 
testG = list("gene1"=0, "gene2"=0, "gene3"=0, "gene4"=0, "gene5"=0, "gene6"=0);
adjacency_test <- matrix(c(0,1,1,0,0,0,1,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0), nrow=6, ncol=6);
rownames(adjacency_test) <- c("gene1", "gene2", "gene3","gene4","gene5","gene6");
colnames(adjacency_test) <- c("gene1", "gene2", "gene3","gene4","gene5","gene6");
require(igraph)
p <- graph.adjacency(adjacency_test, mode="undirected", weighted=TRUE);
vids.permuted <- c(6,5,4,3,2,1)
p2 <- permute(p, permutation=vids.permuted)
plot(p)
plot(p2)

testG置换函数交换顶点ID并创建同构图。这不是你想要的。要交换顶点标签,请使用

p2=p
V(p2)$name=paste("gene ",6:1)

呃,文档太通用了。我想知道为什么示例代码使用graph.isomorphic()方法作为测试行。非常感谢。我必须同意你对文件的看法,措辞有点含糊不清。我知道我已经接受了你的回答,但是你对我的编辑(上面)有什么评论吗?另一个担忧出现了,当我检查所有边是否相同,以及原始图与置换图的度数是否相同时,为什么当绘图明显不同时,igraph会说true?比较边的计算结果为true,因为顶点ID没有改变,只是它们的标签而已。尝试在控制台中键入E(p)[[]]和E(p2)[[]],我想您会看到发生了什么。如果需要,permute函数将交换ID。
p2=p
V(p2)$name=paste("gene ",6:1)