【发布时间】:2021-03-01 12:51:11
【问题描述】:
我有两个使用 Networkx (Python 3.8) 从头开始制作的图形对象。为了帮助理解情况,这是一个摘要 sn-p:
G = nx.Graph()
Z = nx.Graph()
#some work here to get data for nodes and edges
G.add_nodes_from([(data["id"], {"origin": data["origin"], "text": data["text"]})])
#some other work in order to hash data for improved nodes privacy
G.add_edge(h.hexdigest(), data["x"])
Z.add_edge(h.hexdigest(), data["x"], weight=polarity) #here polarity is a simple double value
现在,问题是我想导出这些对象,以便使用 RStudio 和包 igraph 做一些工作。到目前为止,我已经尝试了以下事情(没有任何运气):
- 导出到一个简单的邻接列表(但在 RStudio 中我得到一个错误,这与它需要一个方阵有关,我记不太清了)
- 导出到边缘列表(但我得到了另一种类型的错误,我似乎无法使用权重表示)
- 使用一种幼稚的方法,导出为gml格式,然后安装python-igraph,用
Read_Adjacency()函数读取gml文件,然后用Write_Adjacency()函数重新导出(希望通过这个中间步骤,它以某种方式使 igraph 可以理解格式) - 我尝试了here 提出的解决方案,但这次也没有成功
我该怎么办?
这是我在 RStudio 中使用的代码:
ADJACENCY=read.csv("myadjlist.csv",header=FALSE,row.names=NULL,sep=";")
ADJACENCY=as.matrix(ADJACENCY)
#then we create the graph
G=graph_from_adjacency_matrix(ADJACENCY, mode="undirected")
还有错误:
graph.adjacency.dense 中的错误(adjmatrix,模式 = 模式,加权 = 加权,: 在structure_generators.c:274:非方阵,非方阵
这是我的邻接列表:
【问题讨论】:
-
请提供一些额外的细节。例如,共享您正在使用的邻接列表并发布您收到的特定错误。如果我们看不到所涉及的对象类型和错误,则很难提供帮助。
-
看起来
ADJACENCY实际上不是邻接矩阵。请与dput分享,以便我们检查。 -
好的,现在我编辑了
-
该文件看起来不像邻接列表。你看见了吗?应该如何解读?例如一行是:
820976985387313;d54fd34cbddc270cafac961fa721b4406cc6de97;1c0e32c2bebad24ad7a06350a909788643ed13aa;ec13d5dd8f9e011e3114bd23404fe1a50da875aa。应该是什么意思? -
好吧,我刚刚在 python 中使用了 Networkx 和函数
nx.write_adjlist(G, "my csv")。所以我希望输出是一个 adj 列表。我对该行的解释是节点820976985387313与d54fd34cbddc270cafac961fa721b4406cc6de97连接,依此类推,直到到达换行符
标签: r python-3.x graph networkx igraph