【发布时间】:2023-03-17 15:03:01
【问题描述】:
我正在尝试创建一个无向网络图,作为我正在进行的项目的一部分。我拥有的数据是定性结果。在这里订购没关系。我正在尝试在 igraph 中做到这一点 - 主要是因为这是我几年前学到的,但我不一定会依附于 igraph。
数据看起来像这样,但有 246 行:
df <- data.frame(ResultA = c("drug1", "drug2", "drug3", "drug4"),
ResultB = c("drug2", "drug3", "drug4", "drug1"),
ResultC = c("drug4", NA, "drug3", NA),
ResultD = c("drug3", NA, NA, NA))
重要的是,我想确保所有四列之间都有连接(列名也无关紧要)
所以第一行应该是:
drug1 -- drug2,
drug1 -- drug4,
drug1 -- drug3,
drug2 -- drug4,
drug2 -- drug3,
drug4 -- drug4
我一直在尝试将其纳入邻接/发生矩阵,但很困难
这里的任何帮助都会很棒 - tidyverse 解决方案会很好,但不是必需的(因为我正在努力学习 tidyverse,而不是通过 R 来破解和削减我的方式)
谢谢!
编辑:
为了清楚起见,上面的输出示例是 igraph 对象的样子,而不是所需的输出。
对于那些不做 SNA 的人,这里有以下选项:
To From
drug1 drug2,
drug1 drug4,
drug1 drug3,
drug2 drug4,
drug2 drug3,
drug4 drug4
或邻接矩阵(这里只做第 1 行和第 2 行;简称为“dr”)
drug1 dr2 dr3 dr4
drug1 0 1 1 1
dr2 1 0 2 1
dr3 1 2 0 1
dr4 1 1 1 0
(我认为,通过邻接矩阵来思考有点困难,例如在这里:https://www.jessesadler.com/post/network-analysis-with-r/)
【问题讨论】: