Преобразовать объект igraph в кадр данных в R
Я работаю с библиотекой 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
Любая помощь или указатели будут с благодарностью оценены.
Ответы
Ответ 1
Я не совсем уверен, что вы пытаетесь сделать. Вы хотите, чтобы отношения как фрейм данных, или атрибут node в качестве фрейма данных?
Сделать первый:
> 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)