我有两个使用Networkx(基于Python 3.8)从头构建的图形对象。为了更好地理解情况,这是一个摘要片段:
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能够理解格式) - 我尝试了这里提出的解决方案,但也没有成功
这是我在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")
错误信息如下:
在structure_generators.c:274处报错:非方阵矩阵,非方阵矩阵
这是我的邻接表:
ADJACENCY
实际上不是一个邻接矩阵。请使用dput
共享它,以便我们可以检查它。 - nicola820976985387313;d54fd34cbddc270cafac961fa721b4406cc6de97;1c0e32c2bebad24ad7a06350a909788643ed13aa;ec13d5dd8f9e011e3114bd23404fe1a50da875aa
。这意味着什么? - nicolanx.write_adjlist(G, "my csv")
。因此,我期望输出是一个邻接表。我对这行代码的理解是节点820976985387313
与d54fd34cbddc270cafac961fa721b4406cc6de97
相连,直到遇到换行符为止。 - docdev