繁体   English   中英

在R中使用asIgraph()函数将网络对象转换为igraph对象时出错?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM