statistics - 在 R 中,将igraph对象转换为数据帧

  显示原文与译文双语对照的内容
0 0

我正在使用iGraph库,我需要对网络运行一些统计分析。 我使用iGraph计算几个变量,然后将这些指标用作一些回归中的依赖变量,并将顶点属性作为模型中的独立变量。

因此,我能够加载数据,运行igraph分析,但是我有麻烦将igraph对象转换回数据框架。 我不需要将边缘保留下来,只需将每个顶点变成一个观察,以作为一个列中的属性作为一个列。

我尝试了以下操作:


fg <- fastgreedy.community(uncompg, merges=TRUE)
z<-which.max(fg$modularity)
fgc<- community.to.membership(uncompg, fg$merges,z)
names<-array(V(uncompg)$name)
fccommunity<-array(fgc$membership)
fcresult<-as.matrix(cbind(names,fccommunity))
compg <- set.vertex.attribute(compg,"community", value=fccommunity)

uncompg<-simplify(as.undirected(compg))
hubscore<-hub.score(compg)$vector
authscore<-authority.score(compg)$vector

netdata<-as.data.frame(compg)

但它会引发以下错误:


 cannot coerce class '"igraph"' into a data.frame

任何帮助或者指针都会得到极大的赞赏。

时间: 原作者:

0 0

我不太确定你在做什么。 你希望将关系作为数据帧,还是将节点属性作为数据帧?

执行前一项操作:


> compg.edges <- as.data.frame(get.edgelist(compg))

要执行后者:


> compg.df <- as.data.frame(list(Vertex=V(compg), Community=fccommunity, Hubscore=hubscore, Authscore=authscore), stringsAsFactors=FALSE)

原作者:
...