为R中的多个固定参数应用函数
apply function for multiple fixed parameter in R
我创建了一个函数,比如 myfunc
,它有 4 个参数,比如 para1
、para2
、para3
和 para4
。在我的问题中,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 循环轻松完成,但是 我在想我们是否可以使用 apply
或 sapply
或 tapply
函数 以此目的。 因此,保持其他参数不变,我希望相同函数的输出具有 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)
我创建了一个函数,比如 myfunc
,它有 4 个参数,比如 para1
、para2
、para3
和 para4
。在我的问题中,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 循环轻松完成,但是 我在想我们是否可以使用 apply
或 sapply
或 tapply
函数 以此目的。 因此,保持其他参数不变,我希望相同函数的输出具有 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)