将igraph转换为R中的网络对象时出错

时间:2019-02-20 00:53:56

标签: r igraph

我试图将igraph对象转换为R中的网络对象。我收集这种转换可以使用intergraph包中的asNetwork函数来实现。但是,这会导致错误。无论是使用自己生成的igraph对象,还是使用intergraph包中的示例igraph对象,或者将这些igraph对象转换为包含边和顶点详细信息的数据帧,都会遇到相同的错误。

例如,exIgraph是来自Intergraph的示例igraph对象。使用asNetwork(exIgraph)会产生错误:

> exIgraph
IGRAPH 3625f1a D--- 15 11 -- 
+ attr: label (v/c), label (e/c)
+ edges from 3625f1a:
 [1]  2-> 1  3-> 1  4-> 1  5-> 1  6-> 7  8-> 9 10->11 11->12 12->13 13->14 14->12

> asNetwork(exIgraph)    
Error in .Call(setVertexAttribute_R, x, attrname, value, v) : 
  NULL value passed as symbol address

将igraph对象转换为数据帧是可行的,但随后将数据帧转换为网络则会产生相同的错误:

> l <- asDF(exIgraph) # this works
> asNetwork(l$edges, vertices=l$vertexes)
Error in .Call(setVertexAttribute_R, x, attrname, value, v) : 
  NULL value passed as symbol address

在略有不同的情况下,我也会得到一个相关的错误。 exNetwork是Intergraph中的示例网络对象。输入exNetwork将导致以下结果:

> exNetwork
 Network attributes:
  vertices = 15 
  directed = TRUE 
  hyper = FALSE 
  loops = FALSE 
  multiple = FALSE 
  bipartite = FALSE 
Error in .Call(networkEdgecount_R, x, na.omit) : 
  NULL value passed as symbol address

这些错误是什么意思,我该如何解决?

(我正在RStudio 1.1.463中使用R 3.5.1)

0 个答案:

没有答案