例如,我如何计算每个顶点向男性指向的链接所占的比例?
g <- erdos.renyi.game(20, .3, type=c("gnp"), directed = TRUE)
V(g)$male <- rbinom(20,1,.5)
V(g)$male[10] <- NA
g <- erdos.renyi.game(20, .3, type=c("gnp"), directed = TRUE)
V(g)$male <- rbinom(20,1,.5)
V(g)$male[10] <- NA
unlist(lapply(get.adjlist(g, mode="out"),
function (neis) {
sum(V(g)[neis]$male, na.rm=T)
}
)) / degree(g, mode="out")
get.adjlist(g, mode="out")
获取图的邻接表。这会给你一个向量列表,每个向量包含一个顶点的出边相邻点。然后,我们使用lapply
对此列表中的每个向量应用一个函数。要应用的函数如下:function (neis) {
sum(V(g)[neis]$male, na.rm=T)
}
neis
中的邻居,并使用它从整个顶点集V(g)
中选择一部分顶点。然后检索此顶点子集的male
属性,并对其值进行求和,在运行时删除NA
值。本质上,该函数为您提供了neis
中男性数量。lapply
将此函数应用于图的邻接列表,获得包含给定顶点的男性邻居数量的数字列表。我们使用unlist
将此列表转换为单个R向量,并按元素逐个除以顶点的出度以获得比率。