如何在R语言中删除社交网络数据中度为0的节点?报错求助
解决方案
报错原因很明确:你调用的delete.vertices()是network包的函数,但你的n_all是igraph包生成的图对象,类型不匹配导致报错。igraph包中删除节点的正确函数是delete_vertices()(下划线分隔命名)。
直接修改代码中的删除节点语句即可:
require(igraph) meta <- read.csv("vil35_meta.csv", header = TRUE, as.is = TRUE) n_all <- graph.adjacency(as.matrix(all), mode = "undirected", weighted = TRUE) V(n_all)$caste <- meta$castesubcaste V(n_all)$religion <- meta$hohreligion V(n_all)$rooms <- meta$room_no # 改用igraph的delete_vertices函数 n_all <- delete_vertices(n_all, V(n_all)[degree(n_all) == 0])
另外,也可以用induced_subgraph函数筛选保留度大于0的节点,效果一致:
n_all <- induced_subgraph(n_all, V(n_all)[degree(n_all) > 0])
内容的提问来源于stack exchange,提问作者Aziz Awaludin
相关产品推荐
相关产品推荐

