如何解决将SQL邻接表转换为R邻接矩阵
| 我有一个MySQL表ѭ0,该表将所有相互关联的亲子关系数据存储为2个邻接表: 家谱表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
可能有也可能没有孩子。儿童人数不受限制。
“ 0”表中的每个“ 2”都必须至少具有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
31,45,25
32,45
33,31,32
34,28,59
35,27,28
36,28
39,38,34
41,24
我想使用R's的igraph
包(除非有更合适的选项)来显示我的血统书的定向DAG,其祖先节点出现在子节点之上。我不清楚igraph需要执行什么操作。我认为我需要从邻接列表中生成邻接矩阵,但是我对如何有效地做到这一点感到困惑。
有想法吗?
解决方法
考虑使用边列表。两列矩阵,每条边在矩阵中为一行。 igraph也会从边缘列表中的值中提取节点的名称。
g <- graph.edgelist(el)
如果由于某种原因需要邻接矩阵
adj.mat <- get.adjacency(g)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。