繁体   English   中英

将边缘权重分配给 R 中的 igraph 对象

[英]Assigning edge weight to an igraph object in R

我有一个共现矩阵,我想将其转换为 igraph 对象。 该矩阵具有三列 - node1node2freq

我已经使用graph_from_edgelist命令创建了图形。

g <- graph_from_edgelist(as.matrix(coOccurDf[1:n,1:2]), directed=F)

我现在需要为边缘分配权重。 我尝试使用两个函数,它们似乎都在做同样的工作,但无济于事。

set.edge.attribute(g, "weight", index=E(g), coOccurDf[1:n,]$freq)

set_edge_attr(g, "weight", index=E(g), coOccurDf[1:n,]$freq)

这两个命令都不会引发错误,但是当我尝试使用

E(g)$weight

它只显示NULL

任何帮助,将不胜感激。

您可以按如下方式返回igraph对象的权重:

edge.attributes(g)$weight

E(g)$weight

您可以通过分配给以下任一对象来设置igraph对象的权重:

edge.attributes(g)$weight <- coOccurDf[1:n,]$freq

E(g)$weight <- coOccurDf[1:n,]$freq

要使用set.edge.attribute函数,它会返回一个分配了权重的新图。 要将其分配给对象g而不是将加权图打印到控制台:

g <- set.edge.attribute(g, "weight", index=E(g), coOccurDf[1:n,]$freq)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM