我拥有的数据(Excel)如下所示:

我在第一栏里有2600部电影,其他专栏里也有导演和工作人员的名字。有些名字出现了好几次。
我很难将此excel数据转换成一种可以执行两种模式网络分析的格式(事件:电影,从这些电影中绑定)。有什么帮助文档或代码可以将这些数据转换成适当的格式吗?
发布于 2016-05-31 09:14:39
您可以使用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

在igraph中,二分图是一个正则图,每个顶点都有一个类型属性设置为TRUE/FALSE。哪种类型的顶点并不重要,在本例中,电影设置为TRUE。
https://stackoverflow.com/questions/37539058
复制相似问题