我编写了一段脚本,使用包igraph来生成一系列使用for循环的网络。但是,我被告知使用sapply / mapply等更好的做R中的这种事情。任何人都可以告诉我是否可以使用sapply / mapply等来做这个?如果是这样,你能指出我正确的方向吗?
我的代码如下。 glst是igraph对象的列表,因此代码循环遍历列表,为每个igraph对象生成网络映射并将它们保存为pdf。
for (name in mixedsort(names(glst))){
i=delete.vertices(glst[[name]],which(degree(glst[[name]])<1))
V(i)$color[V(i)$type == 'nest'] <- 'orangered3'
V(i)$color[V(i)$type == 'tree'] <- "#228B2266"
V(i)$size <- 5
V(i)$color[V(i)$species == 'larch'] <- 'burlywood4'
V(i)$color[V(i)$species == 'SP'] <- 'darkgoldenrod2'
V(i)$color[V(i)$species == 'oak'] <- 'deepskyblue4'
V(i)$color[V(i)$species == 'silver birch'] <- 'deeppink'
V(i)$color[V(i)$species == 'sycamore'] <- 'forestgreen'
V(i)$label.cex = 1
plot(i, main =name, vertex.label.dist=0.5)
}
dev.off()
非常感谢!