[英]Error in using asIgraph() function in R to convert a network object to an igraph object?
我目前正在尝试将网络对象转换为igraph对象。 从各种文章中,我了解到intergraph
包可以通过asIgraph()
函数实现此asIgraph()
。 我正在尝试转换在ergm
包中找到的经典Sampson数据集。 当我做:
> library(ergm)
> library(intergraph)
> library(igraph)
> data(sampson)
> class(samplike) # The network object
[1] "network"
> asIgraph(samplike)
Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
arguments imply differing number of rows: 88, 26
我有上面的错误。 有谁知道为什么该规范数据集失败?
编辑 :两周前在
ergm
GitHub上看到了最近的帖子修复了ergm
数据集的“提名”属性。 这是Sampson数据集中的一个错误,现已在GitHub版本上修复,但尚未更新为CRAN。
之所以失败,是因为sampson
数据集具有边属性nominations
,即使数据集中有88条边,该nominations
也只有26个值。 当intergraph
尝试转换为igraph
它尝试使用asDF()
将edge属性绑定到edge列表,并且此步骤失败。 简单的事情是像这样删除edge属性:
smplk<-samplike
delete.edge.attribute(smplk, "nominations")
asIgraph(smplk)
IGRAPH dca72f1 D--- 18 88 --
+ attr: cloisterville (v/l), group (v/c), na (v/l), vertex.names
| (v/c), na (e/l)
...
从文档对我来说还不清楚,该属性应如何映射到边缘列表,但如果可以确定,可以将其与set.edge.attribute
单独添加。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.