Импорт взвешенной матрицы смежности с использованием пакета 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