преобразовать список смежности SQL в матрицу смежности R

У меня есть таблица MySQL pedigree, в которой хранятся все мои взаимосвязанные данные о происхождении в виде двух списков смежности:

Родословная таблица

org_id INT UNSIGNED NOT NULL PRIMARY KEY,
dam_id INT UNSIGNED,
sire_id INT UNSIGNED,
FOREIGN KEY (org_id) REFERENCES organisms(org_id)
FOREIGN KEY (dam_id) REFERENCES organisms(org_id),
FOREIGN KEY (sire_id) REFERENCES organisms(org_id)
  • Любой org_id может иметь или не иметь детей. Количество детей не ограничено.
  • Каждый org_id в таблице pedigree должен иметь как минимум dam_id ИЛИ sire_id.
  • Если у org_id нет родителей, он не будет указан в таблице родословных, кроме как отец или мать.
  • org_id может иметь dam_id==sire_id

Пример данных

Org Dam Sire
23, 42, 57
26, 25, 25
27, 43, 43
28, 44, 44
30, 25, 25
31, 45, 25
32, 45, 45
33, 31, 32
34, 28, 59
35, 27, 28
36, 28, 28
39, 38, 34
41, 27, 24

Я хочу использовать пакет R igraph (если нет чего-то более подходящего) для отображения направленной группы DAG моих родословных с узлами-предками, расположенными над дочерними узлами. Я не понимаю, что именно нужно для этого igraph. Я думаю, мне нужно сгенерировать матрицу смежности из моего списка смежности, но я не понимаю, как это сделать эффективно.

Идеи?


person dnagirl    schedule 14.06.2011    source источник


Ответы (1)


Рассмотрите возможность использования списка краев. Матрица из двух столбцов с каждым ребром в виде строки в матрице. igraph также извлечет имена узлов из значений в списке ребер.

g <- graph.edgelist(el)

И если вам по каким-то причинам нужна матрица смежности

adj.mat <- get.adjacency(g)
person Jesse    schedule 16.06.2011