我试图将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)