【问题标题】:Repeating a function multiple times using a for loop使用 for 循环多次重复一个函数
【发布时间】:2016-04-14 01:33:05
【问题描述】:

具有以矩阵形式创建随机图的代码。现在我希望它创建许多,比如m,随机图,所以输出是m 矩阵。我正在尝试使用 for 循环来做到这一点。这将是我的首选方法,但我愿意接受其他建议(申请家庭?)。这是我的代码,其中 n 是图形具有的节点/顶点数,而 beta 是优先附加的数量(保持在 0 到 1.5 之间)

multiplerandomgraphs <- function(n, beta, m) {
 for(k in 1:m) {
  randomgraph <- function(n, beta) {
   binfunction <- function(y) {
    L <- length(y)
    x <- c(0, cumsum(y))
    U <- runif(1, min = 0 , max = sum(y))
    for(i in 1:L) {
      if(x[i] <= U && x[i+1] > U){
        return(i)
      }
    }
  }
  mat <- matrix(0,n,n)
  mat[1,2] <- 1
  mat[2,1] <- 1
  for(i in 3:n) {
    degvect <- colSums(mat[ , (1:(i-1))])
    degvect <- degvect^(beta)
    j <- binfunction(degvect)
    mat[i,j] <- 1
    mat[j,i] <- 1
   }
return(mat)
  }
 }
}

【问题讨论】:

    标签: r loops


    【解决方案1】:

    您可以将随机图函数定义为randomgraph &lt;- function(i, n, beta) {},其主体与您的定义相同,将参数i 保留为虚拟参数。然后使用apply函数作为listOfMatrix &lt;- lapply(1:m, randomgraph, n, beta)返回一个矩阵列表。

    【讨论】:

    • 我想也许他的意思是在体内使用 apply 系列,但无论哪种方式,你的或 Killian 的返回 Null 作为随机图。可能只有我一个人。
    猜你喜欢
    • 2021-06-14
    • 2021-06-04
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多