невозможно добавить атрибут в двухстороннюю сеть класса sna - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь отформатировать данные для запуска модели ERGM.Однако у меня проблемы с объединением двух наборов данных, которые я хотел бы использовать для модели эргм.Во-первых, мой фактический набор данных - это двухсторонняя сеть с узлами первого типа (политиками) в виде строк и узлами второго типа (каждый голосует политиками по одной теме) в виде столбцов.Однако, пытаясь добавить атрибуты к политикам, я столкнулся с ошибкой, что мой объект sna не является графическим объектом.Чтобы выяснить, в чем проблема, я использовал пример с веб-сайта (ссылка ниже) и немного изменил его, чтобы он тоже представлял собой двудольную сеть.Я столкнулся с той же проблемой, что и с моим большим исходным набором данных.

http://www.mjdenny.com/Preparing_Network_Data_In_R.html

здесь воспроизводимый пример

rm(list = ls())
# install.packages("statnet", dependencies = TRUE) 
library(statnet)

num_nodes <- 10 # in my real data set, these would be the politicians
num_events <- 30 # in my real data set, these would be the votes

my_sociomatrix <- matrix(round(runif(num_nodes*num_events)), # edge values
                         nrow = num_events, #nrow must be same as ncol
                         ncol = num_nodes)
diag(my_sociomatrix) <- 0
class(my_sociomatrix)
net <- as.network(x = my_sociomatrix, # the network object
                  directed = TRUE, # specify whether the network is directed
                  bipartite = TRUE,
                  loops = FALSE, # do we allow self ties (should not allow them)
                  matrix.type = "adjacency" # the type of input
)

Добавление имен кажетсяна работу:

network.vertex.names(net) <- LETTERS[1:10]
network.vertex.names(net) <- c("Susan","Rachel","Angela","Carly","Stephanie","Tom","Mike","Tony","Matt","Steven")
gender <- c(rep("Female",num_nodes/2),rep("Male",num_nodes/2))
print(gender)

Вот часть, которая не работает:

set.vertex.attribute(net, # the name of the network object
                     "Gender", # the name we want to reference the variable by in that object
                     gender # the value we are giving that variable
) 

Это ошибка, которую необходимо устранить:

Error in i_set_vertex_attr(graph = graph, name = name, index = index,  : 
  Not a graph object

делаеткто-нибудь знает, как добавить атрибуты к объекту sna, состоящему из двух частей (объекты sna должны позволять мне запускать ERGM)?Код работает, если я последую примеру на веб-сайте (ссылка выше), но не для двухсторонней сети.

...