为R中的多个固定参数应用函数

apply function for multiple fixed parameter in R

我创建了一个函数,比如 myfunc,它有 4 个参数,比如 para1para2para3para4。在我的问题中,para1是一个矩阵,para2是一个实数,para3是一个向量,para4是一个实数。 函数returns一个列表。我按以下方式定义了函数:

myfunc <- function(para1, para2, para3 = NULL, para4 = 100){
          Body ## Body of the function
          return(list("A" = a, "B" = b, "C" = c)
          }

现在,让lambda <- c(2,3,6,10)。我正在尝试编写代码,以便函数输出以下内容:

myfunc(my_data, 2, my_vec, 100)
myfunc(my_data, 3, my_vec, 100)
myfunc(my_data, 6, my_vec, 100)
myfunc(my_data, 10, my_vec, 100)

这可以通过 for 循环轻松完成,但是 我在想我们是否可以使用 applysapplytapply 函数 以此目的。 因此,保持其他参数不变,我希望相同函数的输出具有 para2 的不同值(即 lambda 中的值)。 这可以吗完成了吗?


我发现了一个非常相似的问题 here,并看到了一些答案。我遵循了这些答案,但出现错误。我写了以下代码:

myfunc <- function(para1, para2, para3 = NULL, para4 = 100) { Body }
para1 <- my_data
para3 <- my_vec
para4 <- 100
lambda <- c(2,3,6,10)

sapply(lambda, myfunc, para1=para1, para3, para4=para4)

我能得到一些帮助吗?提前致谢。

我们可以使用 lapply 来遍历 lambda

lapply(lambda, function(x) myfunc(my_data, x, my_vec, 100))

如果我们不使用 lambda 函数

lapply(lamdba, myfunc, para1 = my_data, para3 = my_ec, para4 = 100)