(1)igraph
を使用してグラフを作成します。 (2)それを二者として宣言する。 (3)それを1モードグラフとして投影する。
el <- read.table(text = "Grant,Person
A,1
A,2
B,2
B,3",
sep = ",", header = T, stringsAsFactors=F)
#1
net <- graph.edgelist(as.matrix(el))
#2
V(net)$type <- bipartite.mapping(net)$type
あなたはグラフがそれを調べることにより、二部であることを確認することができます。
> net
IGRAPH DN-B 5 4 --
+ attr: name (v/c), type (v/l)
+ edges (vertex names):
[1] A->1 A->2 B->2 B->3
2行目の「B」は、それは二部グラフであることを示しています。
#3
net1mode <- bipartite.projection(net)$proj2
bipartite.projection
は、モードごとに1つのプロジェクトを2つ作成します。ノードは元のエッジリストの2番目の列にあるので、2番目の投影です。
par(mfrow=c(1,2))
plot(net,edge.arrow.size=0.5,main="Two mode")
plot(net1mode,edge.arrow.size=0.5, main="One mode projection")
はStackOverflowのへようこそ! [良い質問をする方法](http://stackoverflow.com/help/how-to-ask)と[再現可能な例を与える方法](http://stackoverflow.com/questions/)の情報をお読みください。 5963269)。これは他の人があなたを助けることをはるかに容易にします。 – Axeman