Подтвердить что ты не робот

График подмножества графиков по метке

Я пытаюсь подобрать графику igraph по характеристикам края (например, его метке). В воспроизводимом примере я бесстыдно украден из другого сообщения с небольшой модификацией, я хотел бы иметь возможность отделять ссылки Best Friend (BF) от семейных связей (FAM):

edges <- matrix(c(103, 86, 24, 103, 103, 2, 92, 103, 87, 103, 103, 101, 103, 44), ncol=2, byrow=T)
g <- graph(as.vector(t(edges)))
E(g)[c(2:4,7)]$label<-"FAM"
E(g)[c(1,5,6)]$label<-"BF"

Лучшее, что я могу сделать до сих пор, это показать края, которые имеют один тип галстука:

E(g)[E(g)$label=="BF"]
V(g)[E(g)$label=="BF"]
4b9b3361

Ответ 1

как насчет:

gfam <- subgraph.edges(graph=g, eids=which(E(g)$label=="FAM"), delete.vertices = TRUE)
gbf <- subgraph.edges(graph=g, eids=which(E(g)$label=="BF"), delete.vertices = TRUE)

Предложение для учебника по анализу/сетевому анализу/бесстыдной плагин: http://sna.stanford.edu/rlabs.php

Ответ 2

Я предлагаю вам прочитать ?V и ?E, чтобы увидеть, как выбирать ребра и вершины. Довольно компактное и читаемое решение вашего вопроса -

subgraph.edges(g, E(g)[label=="FAM"])
subgraph.edges(g, E(g)[label=="BF"])

Это также удаляет вершины, если они не имеют края инцидента указанной метки. Подробнее см. ?subgraph.edges.