r - R中多个固定参数的应用函数
问题描述
我创建了一个函数 say ,myfunc
它有 4 个参数 say 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
为此目的使用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)
我能得到一些帮助吗?提前致谢。
解决方案
我们可以使用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)
推荐阅读
- java - async-profiler 查看 jvm 支持的分析事件列表
- c# - 使用 WaitHandle 代替 Thread.Sleep
- javascript - 如何等待承诺得到解决并在之后执行其他代码行
- redgate - RedGate sql 数据比较如何将数据从特定模式的表迁移到另一个数据库中的表
- java - 铃声警报的转义序列在java中不起作用
- php - 我可以在我的 asp.net 项目中使用 Twig 模板吗?
- android - 我想在一个 Edittext 中执行许多任务
- aem - 如果该组件存在于该页面中,则仅选择 AEM 中模板的特定页面
- amazon-web-services - MWAA 上的气流作业失败,没有日志消息
- html - 在按钮标签内制作标签