r - 在 R 中使用 asIgraph() 函数将网络对象转换为 igraph 对象时出错?
问题描述
我目前正在尝试将网络对象转换为 igraph 对象。从各种帖子中,我了解到intergraph
包可以通过该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 上发布的最新帖子修复了 sampson 数据集的“提名”属性。 这是 sampson 数据集中的一个错误,现已在 GitHub 版本上修复,但尚未更新到 CRAN。
它失败了,因为sampson
数据集的边缘属性nominations
只有 26 个值,即使数据集中有 88 条边。当intergraph
尝试转换时,igraph
它会尝试将边缘属性绑定到边缘列表,asDF()
但此步骤失败。简单的事情是像这样删除边缘属性:
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
。
推荐阅读
- visual-studio - Office/Sharepoint 开发人员工具不会显示在 Visual Studio 中(尽管已安装)
- python - 我如何从 Ajax 为 django 获取 id 文章
- azure - Azure WebApp 作为容器支持的应用程序类型
- flutter - 覆盖颤动的文本主题
- javascript - 从服务器返回的数组,但即使在将其序列化为 json 之后,它也不会转换为数组
- python - `为什么 Visual Studio Code 无法识别已安装的 Python 模块?
- javascript - 如何在 JavaScript 猜数字游戏中跟踪尝试
- python - 将 numpy 数组用于 ImageTK 时的奇怪行为
- adobe-xd - 如何在图像的 XD 上提取屏幕区域
- x86-64 - 无法在 Centos 7 上用 64 编译 wine