r - 如何在R中组合两个函数?
问题描述
我有两个功能,我想将两者组合成一个功能。例如,我有两个具有相同多个参数的不同函数,如下所示:
fun1 <- function(a, b){
print(a * b)}
fun2 <- function(a, b){
print(a + b)}
我可以通过使用现有功能将两者合并为一个来做什么,这样我就可以拥有这样的功能:
fun3 <- function(a, b){
print(a * b)
print(a + b)}
谢谢
解决方案
使用fun1
和fun2
从问题中我们可以定义both
哪个顺序运行它们。我们也对其进行测试。
both <- function(...) {
fun1(...)
fun2(...)
}
# test
both(1, 2)
## [1] 2
## [1] 3
或者,如果您想返回他们的输出:
both2 <- function(...) list(fun1(...), fun2(...))
或者,我们可以定义一个工厂函数,给定两个具有相同参数的函数,创建一个按顺序运行它们的函数。
Combine <- function(FUN1, FUN2) {
function(...) { FUN1(...); FUN2(...) }
}
# test
mewfun <- Combine(fun1, fun2)
newfun(1, 2)
## [1] 2
## [1] 3
或者如果你想返回他们的输出
Combine2 <- function(FUN1, FUN2) {
function(...) list(FUN1(...), FUN2(...))
}
推荐阅读
- sql - 删除子查询中的结果
- c++ - 如何读取我的 maxon 电机的速度状态?
- python - snakemake - 执行多项工作后工作流失败
- ios - 如何在 AppDelegate 中将默认声音添加到我的推送通知中
- windows - 命令“Get-Command -Module Defender”没有输出
- angular - 使用 --prod 选项构建时的行为差异
- sql - sql union 显示重复项
- python - pint:numpy 数组的大小
- ios - 如何添加返回或取消按钮以关闭 UIDocumentBrowser
- php - PHP cURL 查找时间大约需要 5 秒