Импорт взвешенной матрицы смежности с использованием пакета Statnet в R

Я пытаюсь проанализировать взвешенную проекцию 1 режима для сети с 2 режимами в R, используя двудольный и набор statnet (состоящий из сети, sna и нескольких других пакетов) на сервере Unix. Проекция работает нормально, используя смесь двудольной и матричной алгебры, но когда я пытаюсь импортировать оцененную матрицу как взвешенный сетевой объект, используя код ниже, я, кажется, теряю значения, которые находятся в моей исходной матрице.

MNDocnet<-as.network(MNDocmatrix,matrix.type="adjacency",directed=FALSE, hyper=FALSE, loops=TRUE, multiple=FALSE, bipartite = FALSE, ignore.eval=FALSE, names.eval="patients")

Спасибо за любую помощь, которую вы можете предоставить.

1 ответ

Решение

Трудно точно понять без ваших структур данных, но этот синтаксис мне кажется правильным. Вот пример

сделать образец входных данных

> adjmat<-matrix(c(0,1,2,3,0,4,5,6,0),ncol=3)
> adjmat
     [,1] [,2] [,3]
[1,]    0    3    5
[2,]    1    0    6
[3,]    2    4    0

Преобразовать матрицу в сетевой объект

> test<-as.network(adjmat,matrix.type='adjacency',ignore.eval=FALSE,names.eval='sample')

печатать значения ребер для атрибута с именем 'sample'

> test%e%'sample'
[1] 1 2 3 4 5 6

Обратите внимание, что если вы хотите преобразовать его обратно в оцененную матрицу, вам нужно дать ему имя атрибута, предоставляющего значения:

> as.matrix(test)
  1 2 3
1 0 1 1
2 1 0 1
3 1 1 0

против

> as.matrix(test,attrname='sample')
  1 2 3
1 0 3 5
2 1 0 6
3 2 4 0
Другие вопросы по тегам