gpt4 book ai didi

r - 如何根据 igraph 中顶点的邻居属性创建顶点属性?

转载 作者:行者123 更新时间:2023-12-04 06:12:25 25 4
gpt4 key购买 nike

例如,对于每个顶点,我将如何计算向外指向男性的关系百分比?

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 向量并将其按元素除以顶点的出度以获得比率。

关于r - 如何根据 igraph 中顶点的邻居属性创建顶点属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7628599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com