如何获取r/python中三元组的详细信息?

2024-09-25 00:30:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前使用igraph来获得给定有向图的traid统计量。这将返回16个类中每个三元组的计数。在

例如,16 3 0 10 1 0 0 0 0 0 0 0 0 0 0 0

不过,我想知道更多的细节,三合会比这些汇总统计。在

例如,假设网络有16个003,它们是什么?假设网络有3012,它们是什么?在

示例:012的3个traid是(john -> emi, jenne)(cena -> ally, john)(emi -> peter, david)

有没有用r或python实现的方法?在

MWE

图形数据:http://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxkYWlzaGl6dWthfGd4OmFmZTI0NjhlMjQ0ZDQ5MQ

代码:

library(igraph)
#import the sample_dw_adj.csv file:
dat=read.csv(file.choose(),header=TRUE,row.names=1,check.names=FALSE) # read .csv file
m=as.matrix(dat)
net=graph.adjacency(m,mode="directed",weighted=TRUE,diag=FALSE)
plot.igraph(net,vertex.label=V(net)$name,layout=layout.fruchterman.reingold, vertex.label.color="black",edge.color="black",edge.width=E(net)$weight/3, edge.arrow.size=1.5)

所以,我的实际图表如下所示。 enter image description here

如果需要,我很乐意提供更多细节。在


Tags: csv网络falsetruereadnetnamesjohn
1条回答
网友
1楼 · 发布于 2024-09-25 00:30:44

Networkx似乎没有一个内置的方法来完成您想要的。但是,您可以手动遍历每个空间坐标轴并定义它所属的类:

from itertools import combinations

triad_class = {}
for nodes in combinations(G.nodes, 3):
    triad_class[nodes] = [k for k, v in nx.triads.triadic_census(G.subgraph(nodes)).items() if v][0]

如果您希望有一个以类为键的字典,可以尝试如下方法:

^{pr2}$

相关问题 更多 >