我从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*
为什么?
答案 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]