добавить атрибут ребра на основе другой сети - PullRequest
0 голосов
/ 01 января 2019

У меня есть две сети одной вершины, основанные на разных критериях.Я хочу добавить граничные атрибуты одной сети на основе соединения другой сети.То есть, если узлы A и B подключены в сети 2, я хочу отметить «1» в качестве атрибута в сети 1, если не подключен, отметить «0».Мне интересно, как я могу достичь своей цели с помощью пакета R или другого программного обеспечения?Любое предложение приветствуется.Большое спасибо за предложение!

1 Ответ

0 голосов
/ 01 января 2019

Вы можете сделать это в R, используя пакет igraph.Поскольку вы не предоставляете никаких данных, я приведу пример.

Пример данных

library(igraph)

set.seed(1234)
g1=erdos.renyi.game(10, 0.35)
g2=erdos.renyi.game(10, 0.35)
par(mfrow=c(1,2))
plot(g1)
plot(g2)

Two example graphs

Теперь мы можем создать требуемый атрибут ребра.Мы инициализируем все значения на ноль, затем перебираем все ребра в g2.Если такое же ребро встречается в g1, мы меняем атрибут на 1.

E(g2)$net1 = 0
for(e in E(g2)) {
    if(are_adjacent(g1, ends(g2,e)[1], ends(g2,e)[2])) {
        E(g2)$net1[e] = 1 }
}

E(g2)$net1
[1] 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
E(g2)[which(E(g2)$net1 > 0)]
+ 4/19 edges from 3bdc176:
[1] 3--4 4--5 4--6 5--7

Вы можете видеть, что атрибут net1 говорит, что общие ссылки:
3--4 4--5 4--6 5--7
что согласуется с сюжетом.

...