Я использую пакет 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)
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 .
Этот набор данных является примером, реальные данные содержат тысячи строк, исключая любыеВозможность сделать это вручную.Большое спасибо заранее!