2011-02-05 18 views
13

Estoy trabajando con la biblioteca iGraph y necesito realizar algunos análisis estadísticos en la red. Estoy computando varias variables usando iGraph y luego quiero usar esos indicadores como la variable dependiente en algunas regresiones y los atributos de los vértices como las variables independientes en el modelo.Convierta el objeto igraph a un marco de datos en R

Por lo tanto, puedo cargar los datos, ejecutar el análisis de igraph, pero tengo problemas para volver a convertir el objeto de igrafo en un marco de datos. Realmente no necesito preservar los bordes, solo cada vértice se convierte en una observación con los atributos que sirven como columna en cada fila.

He intentado lo siguiente:

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) 

Pero tiros el siguiente error:

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

Cualquier ayuda o sugerencias serán bienvenidos.

+0

No he trabajado con los datos IConfiguración antes, pero si usted podría proporcionar un ejemplo sencillo reproducible, probablemente podría extraer los datos de la clase igraph. –

+0

Te refieres al paquete igraph * – Spacedman

+0

Sí, el paquete igraph. Todavía estoy bajando la jerga. –

Respuesta

19

No estoy muy seguro de lo que está tratando de hacer. ¿Desea las relaciones como un marco de datos o el atributo de nodo como un marco de datos?

hacer lo primero:

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

Para hacer esto último:

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

En realidad estaba tratando de hacer lo posterior, pero el primero también es muy útil. Estoy tratando de traer algunos atributos netos computados de vuelta al marco de datos para ejecutar algunos análisis de logit sobre ellos. –

+0

Por cierto, ¡me encanta tu blog! –

Cuestiones relacionadas