Ошибка использования функции asIgraph () в R для преобразования сетевого объекта в объект igraph? - PullRequest
0 голосов
/ 07 июня 2018

В настоящее время я пытаюсь преобразовать сетевой объект в объект igraph.Из различных сообщений я понимаю, что пакет intergraph может сделать это через функцию asIgraph().Я пытаюсь преобразовать классический набор данных Sampson, который находится в пакете ergm.Когда я делаю:

> 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

У меня есть ошибка выше.У кого-нибудь есть идеи, почему он не подходит для этого канонического набора данных?

1 Ответ

0 голосов
/ 07 июня 2018

РЕДАКТИРОВАТЬ : см. Недавнее сообщение, опубликованное две недели назад на ergm GitHub Исправлен атрибут «nominations» набора данных sampson. Это ошибка внабор данных sampson, который теперь исправлен в версии GitHub, но еще не обновлен до CRAN.

Это происходит сбой, поскольку набор данных sampson имеет атрибут ребра nominations, который имеет только 26 значений.хотя в наборе данных есть 88 ребер.Когда intergraph пытается преобразовать в igraph, он пытается привязать атрибуты ребер к списку ребер с помощью asDF(), и этот шаг завершается неудачей.Проще всего удалить атрибут 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.

...