是否有可能/更好地使用sapply而不是for循环来生成多个igraph图?

时间:2017-01-17 16:02:09

标签: r for-loop dplyr igraph

我编写了一段脚本,使用包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()

非常感谢!

0 个答案:

没有答案