如何在R语言中删除图中Jaccard相似度为0的边?
删除图中weight=0的边(Jaccard相似度为0的边)
嗨,我来帮你搞定这个问题~在R里处理图结构,最常用的就是igraph包,咱们就用它来删掉所有权重为0的边,步骤超简单:
首先确保你装了
igraph包,如果没装的话先执行这两行:install.packages("igraph") # 安装包 library(igraph) # 加载包假设你的图对象名叫
my_graph(换成你自己实际的对象名就行),这里有两种常用方法:方法一:直接筛选保留非0权重的边,生成新图
# 筛选出权重不等于0的边的索引 non_zero_edges <- E(my_graph)$weight != 0 # 生成只包含这些边的干净图 cleaned_graph <- subgraph.edges(my_graph, eids = which(non_zero_edges))方法二:直接在原图上删除权重为0的边
# 找到所有权重为0的边的索引 zero_edges <- which(E(my_graph)$weight == 0) # 删除这些边 my_graph <- delete.edges(my_graph, zero_edges)
小提示:如果你的相似度列不叫weight,而是直接叫Jaccard,记得把代码里的weight换成Jaccard哦,比如E(my_graph)$Jaccard != 0。
内容的提问来源于stack exchange,提问作者Saeed VA
相关产品推荐
相关产品推荐

