如何用R语言igraph包统计仅含入边或出边的顶点数量?
统计igraph图中仅含入边/出边的顶点数量
嘿,我来帮你搞定这个统计需求!基于你已经写好的igraph代码,我们只需要加几步就能得到想要的结果,具体实现如下:
步骤说明
- 先计算每个顶点的入度和出度:igraph的
degree()函数可以通过mode参数指定计算入度还是出度; - 筛选出符合条件的顶点:仅含入边的顶点是「入度>0且出度=0」,仅含出边的顶点是「出度>0且入度=0」;
- 统计这些顶点的数量,也可以查看具体是哪些顶点。
完整代码示例
library(igraph) # 你的现有代码:读取数据并构建图 web <- read.csv(file = "myweb.csv", header = T) g <- graph.data.frame(web) # 计算每个顶点的入度和出度 in_degree <- degree(g, mode = "in") out_degree <- degree(g, mode = "out") # 统计仅含入边的顶点数量 only_in_count <- sum(in_degree > 0 & out_degree == 0) cat("仅含入边的顶点数量:", only_in_count, "\n") # 统计仅含出边的顶点数量 only_out_count <- sum(out_degree > 0 & in_degree == 0) cat("仅含出边的顶点数量:", only_out_count, "\n") # 可选:查看具体的顶点名称(如果需要) only_in_vertices <- names(in_degree[in_degree > 0 & out_degree == 0]) only_out_vertices <- names(out_degree[out_degree > 0 & in_degree == 0])
补充说明
degree(g, mode = "in"):返回每个顶点的入边数量;degree(g, mode = "out"):返回每个顶点的出边数量;- 如果你想统计既没有入边也没有出边的孤立顶点,可以用
sum(in_degree == 0 & out_degree == 0)。
内容的提问来源于stack exchange,提问作者Tomas Marina
相关产品推荐
相关产品推荐

