Получение взвешенной матрицы из сети - PullRequest
0 голосов
/ 27 ноября 2018

Я использую пакет asnipe для создания сетей из групповой-индивидуальной матрицы, но затем мне нужно преобразовать его в матрицу смежности.Для этого я подумал об использовании функций, включенных в igraph, таких как get.adjacency, но он возвращает невзвешенную матрицу, где все ассоциации принимают только 1 в качестве значения.

Например, если мы рассмотрим следующий набор данных:

data <- read.table(text = "  A B C D E
                 1 1 1 0 0 0
                 2 1 1 0 0 0
                 3 1 1 0 0 0
                 4 1 1 0 0 0
                 5 0 0 1 1 1
                 6 0 0 1 1 1
                 7 0 0 1 1 1
                 8 0 0 1 1 1
                 9 1 1 1 1 1", header = TRUE)

, который дает следующий график:

network <- get_network(association_data = data, data_format = "GBI")
# Generating  5  x  5  matrix

library(igraph)
net <- graph.adjacency(network, mode = "undirected", weighted = TRUE, diag = FALSE)

graph

Iожидал получить такую ​​матрицу:

  A B C D E
A . 5 1 1 1
B 5 . 1 1 1
C 1 1 . 5 5
D 1 1 5 . 5
E 1 1 5 5 .

Но я получаю это:

get.adjacency(net)
# 5 x 5 sparse Matrix of class "dgCMatrix"
  A B C D E
A . 1 1 1 1
B 1 . 1 1 1
C 1 1 . 1 1
D 1 1 1 . 1
E 1 1 1 1 .

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

...