Пожалуйста, обратите внимание на следующий граф с вершинами из двух категорий («цифра» и «полукокс»):Как назвать вершины с contract.vertices() в соответствии с именами отображения вектора и добавить атрибут частоты
library(igraph)
id <- c("1","2","A","B")
category <- c("digit","digit","char","char")
from <- c("1","1","2","A","A","B")
to <- c("2","A","A","B","1","2")
nodes <- cbind(id,category)
edges <- cbind(from,to)
g <- graph.data.frame(edges, directed=TRUE, vertices=nodes)
Теперь я хочу, чтобы стянуть вершины на основе атрибута «категории»:
category_attr <- get.vertex.attribute(g, "category")
map = setNames(c(1:2), c("digit","char"))
category_attr <- map[unlist(category_attr)]
igraph_category <- contract.vertices(g, category_attr)
print(get.data.frame(igraph_category, what="vertices"))
# name
# c("1", "2") 1, 2
# c("A", "B") A, B
Но я хотел бы «ID» и атрибут «имя» нового графика, чтобы быть «категория» законтрактованных вершин, а также столбец, где показано количество сокращенных вершин.
В общем, я хотел бы:
print(get.data.frame(igraph_category, what="vertices"))
# name frequency
# digit digit 2
# char char 2
Поперечное размещена здесь: http://lists.gnu.org/archive/html/ igraph-помощь/2013-11/msg00175.html –