簡體   English   中英

使用lapply運行具有多個參數的函數

[英]Using lapply to run a function with multiple parameters

我有一個要與各種參數一起運行的函數(請參見示例中的p_space)。 我可以使用for循環輕松完成此操作。 但是,由於我計划在以后使用並行處理,因此似乎很麻煩。 有人知道我該怎么做嗎? 我的嘗試似乎根本無效!

示例代碼:

as <- c(1,2)  # limit for K
bs <- c(3,4)
cs <- c(2,3)  # distribution of food sources ('random'/'clustered')

p_space <- list ()
for (a in as){
  for (b in bs){
    for (c in cs){
      p_space[[length(p_space)+1]] <- c(a,b,c)
    }
  }
}
made_up <- function(a, b, c){
  return(a * b * c)
}

我嘗試這樣做:

lapply(p_space, made_up(i) p_space[[i]])

我想要的輸出是一個數據幀/矩陣/列表,其中包含p_space中所有參數集上made_up函數的結果。

我將如何使用for循環來做到這一點

 results <- list()

for (a in as){
  for (b in bs){
    for (c in cs){
      results[[length(results) + 1 ]] <- c(a*b*c,a,b,c)
    }}}

也許將向量傳遞給made_up,然后提取a,b和c?

made_up <- function(pvec){
  return(pvec[1]*pvec[2]*pvec[3])
}

lapply(p_space,made_up)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM