2016-05-31 52 views
0

,我有看起来像这样的数据(EXCEL):r中转换数据形式2mode网络


Excel


我在第一列2600部电影有名字的其他专栏的董事和职员。有些名字出现好几次了。

我无法将此excel数据转换为可以在r中执行双模式网络分析(事件:电影,与这些电影的关系)的格式。是否有任何帮助文件或代码可以将这些数据转换为适当的格式?

+1

不知道我理解你所需的输出格式 - 那些“与那些电影的联系”是什么意思? – Spacedman

+0

您能否显示所需的样例输出 –

回答

0

您可以使用igraph(它称为这种类型的网络双方)做到这一点。

假设您已经创建了一个数据框,其中包含您的excel数据,称为dt。

dt 
    Movie  director codirector staff1 
1 StarWars  JJAbrams  <NA> Anne 
2 Abarter JamesCameron  <NA> <NA> 
3 Loiter   Kenn  Klark Kage 

然后可以创建一个二分图,g如下:

库(reshape2)

edgelist <- melt(dt, id.vars = 'Movie')[, -2] 
edgelist <- edgelist[complete.cases(edgelist), ] 

library(igraph) 

g <- graph.data.frame(edgelist) 

V(g)$type <- V(g)$name %in% edgelist[, 1] 
g 
plot(g) 
IGRAPH DN-B 9 6 -- 
+ attr: name (v/c), type (v/l) 
+ edges (vertex names): 
[1] StarWars->JJAbrams  Abarter ->JamesCameron Loiter ->Kenn   Loiter ->Klark  
[5] StarWars->Anne   Loiter ->Kage 

enter image description here

igraph二部图是常规图形与每个顶点的类型属性设置为TRUE/FALSE。无论哪种类型的顶点(在这种情况下,电影被设置为TRUE)都无关紧要。

+0

非常感谢!它帮助了很多! – TrebiLime