【发布时间】:2016-10-06 21:37:05
【问题描述】:
我想知道,使用igraph,是否可以根据不同边属性的值将边添加到图形中。
我有一个data.frame,dput 如下:
df <- structure(list(nodeA = c("CFTR", "CFTR", "CFTR", "CFTR", "CFTR",
"CFTR"), nodeB = c("CYP7A1", "KRT16", "ABCA3", "SLC22A11",
"PBK", "ACSM1"), score = c(0.239, 0.24, 0.292, 0.269,
0.233, 0.168), text = c(129L, 0L, 287L, 246L,
161L, 155L), mining = c(163L, 241L, 413L, 71L, 92L, 56L),
experiments = c(0L, 0L, 101L, 0L, 75L, 0L), homologs =c(0L,
0L, 609L, 0L, 0L, 0L)), .Names = c("nodeA", "nodeB",
"score", "text", "mining","experiments",
"homologs"), class = "data.frame", row.names = c(NA, 6L))
如果边属性的值不为0,我想在图形中添加新边(g <- graph.data.frame(df, directed=FALSE),例如对于边CFTR--CYP7A1,我想添加一对额外的边(一个用于text,另一个用于mining 属性),我对score 不感兴趣(这是我图表的权重)
【问题讨论】:
-
m <- reshape2::melt(df, id.=1:2) ; m <- m[m$value!=0, ] ; g <- graph.data.frame(m, directed=FALSE)。这是预期的结果吗? -
关闭但不是@user20650,我想为整个图形添加边。我的意思是,我想绘制我的完整图(27 个节点和 91 条边),但除了这 91 条边之外,我还想在 edge.attributes 不同于 0 的节点之间绘制其他边
-
当然。我希望将边添加到原始图形中,例如根据属性以另一种颜色表示,但是对于您问题中的数据,是否所有预期的边都在那里?只是确保预期的结果。
-
是的,这些是要添加的预期边缘@user20650
-
@user20650,您是否有更改添加代码,用于将您计算的边添加到图形中,并根据属性更改他的颜色?