[英]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.