首页 > 解决方案 > R中多个固定参数的应用函数

问题描述

我创建了一个函数 say ,myfunc它有 4 个参数 say para1para2和。在我的问题中,是一个矩阵,是一个实数,是一个向量,是一个实数。该函数返回一个列表。我以以下方式定义了该功能:para3para4para1para2para3para4

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为此目的使用or函数。因此,在保持其他参数不变的情况下,我希望输出具有不同值(即 中的值lambda)的相同函数para2这可以做到吗?


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

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)

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

标签: rapplyself

解决方案


我们可以使用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)

推荐阅读