【发布时间】:2021-07-14 16:26:06
【问题描述】:
我创建了一个函数,比如 myfunc,它有 4 个参数,比如 para1、para2、para3 和 para4。在我的问题中,para1 是矩阵,para2 是实数,para3 是向量,para4 是实数。 该函数返回一个列表。我已按以下方式定义该函数:
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 循环轻松完成,但 我在想我们是否可以为此目的使用 apply 或 sapply 或 tapply 函数。 所以,保持其他参数不变,我希望输出具有不同值(即lambda 中的值)para2 的相同函数。可以这样做吗?
我发现了一个非常相似的问题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)
我可以得到一些帮助吗?提前致谢。
【问题讨论】: