为边缘指定权重

时间:2018-05-30 20:35:24

标签: r igraph

我从this text file制作了一张图表 我尝试通过jaccard相似性为边缘分配权重

 dat<-read.delim(file.choose(),header = F)
> g<-graph_from_data_frame(dat,directed = F)
> g<-simplify(g)
> sim<-similarity.jaccard(g)
> el<-get.edgelist(g)
> E(g)$weight <- sim[el]

但发送这些错误:

*Warning message:
In length(eattrs[[name]]) <- ec : length of NULL cannot be changed*

*Error in sim[el] : subscript out of bounds*

为什么?

1 个答案:

答案 0 :(得分:0)

你对get.edgelist的调用是将顶点id作为字符返回,但你想用它们作为数字矩阵来索引你的jaccard分数

el<-get.edgelist(g)
el<-apply(el, 2, as.numeric) #convert to numeric matrix
E(g)$weight <- sim[el]