首页 > 解决方案 > 在 pa.exp 上创建多个带有增量的优先附件 igraph

问题描述

我正在尝试创建多个 igraph 到目前为止我只有:`

set.seed(1)
   gs <- list()
   for (x in seq_len(100L)) {
   gs[[x]] <- sample_pa_age(10000, pa.exp=1.05, aging.exp=0.0, aging.bin=1000)
   E(gs[[x]])$weight <- sample(1:5, ecount(gs[[x]]), T)
   }
   plot(gs[[1]], edge.width = E(gs[[1]])$weight) # plot first graph

` 但我想做的是将 pa.exp 从 = 1 更改为 = 3,增量为 0.05。,生成多个图表。该怎么办?

标签: loopsnested-loopsigraph

解决方案


使用 for 循环:

pa <- seq(1, 3, 0.05)
gs <- vector("list", length(pa))
i <- 1
for(x in pa){
  gs[[i]] <- sample_pa_age(10000, pa.exp=x, aging.exp=0.0, aging.bin=1000)
  E(gs[[i]])$weight <- sample(1:5, 9999, T)
  i <- i+1
}

或者,您可以使用 lapply,这样您就不必事先创建列表:

my_graph <- function(x, n=10000){
  g <- sample_pa_age(n, pa.exp=x, aging.exp=0.0, aging.bin=1000)
  E(g)$weight <- sample(1:5, n-1, T)
  return(g)
}
gs <- lapply(seq(1, 3, 0.05), my_graph)

推荐阅读