R语言中可存储多个igraph/tidygraph网络的对象类型是什么?
你需要将G定义为**列表(list)**类型的R对象。
原因是play_erdos_renyi生成的是tidygraph的tbl_graph(同时兼容igraph的graph)复合类对象,普通的原子向量(数值、字符向量等)只能存储同类型的基础数据,无法承载这类复合结构的对象,而列表是R中专门用来存储不同类型、不同长度对象的容器,刚好适配这个需求。
正确的实现代码如下:
# 加载所需包 library(igraph) library(tidygraph) # 预先初始化指定长度的空列表,比动态扩展效率更高 G <- vector("list", 10) for (i in 1:10) { # 列表赋值要用双中括号[[ ]],不要用单中括号[ ] G[[i]] <- play_erdos_renyi(10, .2) }
后续使用时如果要提取第i个网络对象,同样需要用双中括号取值,例如print(G[[2]])就可以查看第二个生成的网络的信息。
内容的提问来源于stack exchange,提问作者AC24
相关产品推荐
相关产品推荐

