以下是我在Rstudio中使用
igraph
创建的一个玩具数据集,用于描述恐怖分子和他们的目标之间的二分网络。以下规范适用于两种类型顶点之间的有向二分关系:set.seed(1234)
df <- data.frame(
perpetrator <- c(
'Armed Islamic Group (GIA)',
'Armed Islamic Group (GIA)',
'Algerian Islamic Extremists',
'Islamic Salvation Front (FIS)',
'Unindentified Activists',
'Armed Islamic Group (GIA)',
'Armata di Liberazione Naziunale (ALN)',
'Armed Islamic Group (GIA)',
'Islamist Extremists',
'Muslim Fundamentalists'),
target <- c(
'Unnamed Civilians',
'Unnamed Civilians',
'Unnamed Civilians',
'Government Buildings',
'Police Station',
'Soldiers',
'Terrorist Group',
'Unnamed Civilians',
'Police Patrol',
'Police Patrol'),
stringsAsFactors = TRUE)
net <- graph.edgelist(as.matrix(df))
V(net)$type <- bipartite.mapping(net)$type
proj_net <- bipartite.projection(net)
plot(net,
main = "Bipartite Projection of Algerian Terror Network",
layout=-layout.bipartite(net)[,2:1])
我的问题是:如何将这个二元(双部)关联网络转换为一元(单部)关联网络,其中顶点是恐怖分子作案者,边缘是作案者之间的共同目标?我猜想需要矩阵乘法和绘制邻接矩阵,但是我尝试了论坛中的一些示例脚本后没有成功。我意识到在这个玩具示例中我会有一些孤立节点和少量的对偶,但是一旦我掌握了机制,我希望将这个转换过程扩展到更大的数据集。
其次,对于一元规范,像中心性、密度和传递性这样的描述性度量是否与其他单元图中的相同,或者在双部网络中的描述性干扰是否需要不同的网络结构度量?