gpt4 book ai didi

r - 如何将 Networkx Graph 转换为 igraph 对象(从 python 到 R)

转载 作者:行者123 更新时间:2023-12-05 04:56:32 30 4
gpt4 key购买 nike

我有两个用 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 进行一些工作。到目前为止,我已经尝试了以下方法(没有任何运气):

  1. 导出到一个简单的邻接列表(但在 RStudio 中我得到一个错误,与它期望方矩阵的事实有关,我记不太清了)
  2. 导出到边缘列表(但我得到另一种类型的错误,似乎我不能使用权重表示)
  3. 使用一种简单的方法,以 gml 格式导出,然后安装 python-igraph,使用函数 Read_Adjacency() 读取 gml 文件,然后使用function Write_Adjacency()(希望通过这个中间步骤,它能以某种方式让 igraph 可以理解格式)
  4. 我尝试了建议的解决方案 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")

错误:

Error in graph.adjacency.dense(adjmatrix, mode = mode, weighted = weighted, :At structure_generators.c:274 : Non-square matrix, Non-square matrix

这是我的邻接表:

link

最佳答案

igraph 如今支持直接转换为 networkx 对象。参见 https://igraph.org/python/doc/igraph.Graph-class.html#from_networkx更多细节。如果您首先转换为 igraph 对象(在 Python 中),将其写入文件,然后使用 igraph(在 R 中)将其读回,这应该可以正常工作.

关于r - 如何将 Networkx Graph 转换为 igraph 对象(从 python 到 R),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64889934/

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