为了用R来处理网络数据,我们使用婚礼数据集。
- > nflo=network(flo,directed=FALSE)
- > plot(nflo, displaylabels = TRUE,
- + boxed.labels =
- + FALSE)
下一步是igraph。由于我们有邻接矩阵,因此可以使用它
- graph_from_adjacency_matrix(flo,
- + mode = "undirected")
我们可以在两个特定节点之间获得最短路径。我们给节点赋予适当的颜色
- all_shortest_paths(iflo,
- )
- > plot(iflo)
我们还可以可视化边,需要从输出中提取边缘
- > lins=c(paste(as.character(L)[1:4],
- + "--"
- + as.character(L)[2:5] sep="" ,
- + paste(as.character(L) 2:5],
- + "--",
- > E(ifl )$color=c("grey","black")[1+EU]
- > plot(iflo)
也可以使用D3js可视化
- > library( networkD3 )
- > simpleNetwork (df)
下一个问题是向网络添加一个顶点。最简单的方法是通过邻接矩阵实现概率
- > flo2["f","v"]=1
- > flo2["v","f"]=1
然后,我们进行集中度测量。
目的是了解它们之间的关系。
- betweenness(ilo)
- > cor(base)
- betw close deg eig
- betw 1.0000000 0.5763487 0.8333763 0.6737162
- close 0.5763487 1.0000000 0.7572778 0.7989789
- deg 0.8333763 0.7572778 1.0000000 0.9404647
- eig 0.6737162 0.7989789 0.9404647 1.0000000
可以使用层次聚类图来可视化集中度度量
- hclust(dist( ase ,
- + method="ward")
查看集中度度量的值,查看排名
- > for(i in 1:4) rbase[,i]=rank(base[,i])
在此,特征向量测度非常接近顶点的度数。
最后,寻找聚类(以防这些家庭之间爆发战争)
> kc <- fastgreedy.community ( iflo )
在这里,我们有3类