2016-10-28 3 views
0

Я хочу составить сетевой график всеми возможными способами, когда письмо/открытка может перейти от начального к конечному пункту назначения (в наборах данных есть три буквы, см. рисунок ниже) enter image description here. Вот фиктивные данные.Сетевой график со всеми возможными путями для трех контекстов в кадре данных и наложения

postcard<- c('loveletter#234', 'loveletter#234', 'loveletter#234', 'officialletter#22','officialletter#22','officialletter#22','officialletter#22', 'newyearletter#24','newyearletter#24','newyearletter#24') 
person<- c('Jane', 'Katie', 'Vince', 'John','Jane', 'Katie','Oliver','Katie','Becca','John') 
df<- data.frame(postcard,person) 

Я хочу, чтобы создать сетевой график, который показывает человек как «узлы» и пути, через которые столб достигает человек как края. Например, график должен накладывать все пути, которые произошли в этой транзакции, для 1) любовника № 234 2) оффициального бюллетеня № 22 3) newyearletter # 22 и наложения. Может ли кто-нибудь предложить какие-либо идеи, как это сделать? Спасибо за помощь.

ответ

0

Вы можете попробовать CJ() из data.table пакета:

library(data.table); library(igraph); 

g <- graph.data.frame(setDT(df)[, CJ(person, person), postcard][, .(V1, V2)][V1 != V2]) 
plot(g) 

enter image description here

+0

спасибо, сэр! – user3570187

1

Вы можете создать матрицу смежности первого и загрузить его в объект igraph.

t(table(df)) %*% table(df) 
post <- t(table(df)) %*% table(df) 

g<-graph.adjacency(post, diag=FALSE) 

plot(g) 

enter image description here

+0

Большое спасибо, сэр! – user3570187

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