2017-02-16 6 views
1

У меня есть edgelist, представляющий двудольную сеть.Использование Edgelist для построения сетей связи из двудольного графа

ID1 ID2 
    1 123 
    1 124 
    1 125 
    2 123 
    2 126 
    3 127 
    3 123 
    3 130 

ID1 - один из классов актеров, ID2 - еще один класс актеров. Как назначить атрибуты для классов актора (все вершины в ID1 как один класс, все вершины в ID2 как другой класс), чтобы использовать его для двухстороннего сетевого анализа. Кроме того, я хочу вывести сети связи из двухстороннего графика как два отдельных графика и хочу их экспортировать.

Код для воспроизведения кадра данных можно найти здесь

x<-as.data.frame(matrix(c(1,1,1,2,2,3,3,3,123,124,125,123,126,127,123,130),8,2)) 
colnames(x) <- c("ID1", "ID2") 
g <- graph.data.frame(x, directed=F) 

Спасибо заранее!

+0

Я не понимаю, о чем вы просите. Какой здесь результат? Как изменить график 'g'? – MrFlick

+0

В этой текущей форме я не могу создать двудольный граф, но я не мог найти решения для присвоения значения (согласно документации на igraph одному классу участников нужно присвоить значение TRUE, другому нужно присвоить значение FALSE чтобы обнаружить его как двудольный граф) в колонку. Надеюсь, это станет немного понятнее? – PCK1992

ответ

0

В основном вам просто нужно назначить атрибут типа вершинам, используя данные в вашем файле data.frame. Например,

is_bipartite(g) 
# [1] FALSE 
V(g)$type <- V(g)$name %in% x[["ID1"]] 
is_bipartite(g) 
# [1] TRUE 

Этот код использует имена вершин, чтобы установить все из них в первом столбце равным TRUE.

Смежные вопросы