将附加参数传递给两个函数

时间:2016-06-23 03:45:41

标签: r

我想将参数传递给两个函数。我尝试...,但似乎...将所有参数传递给第一个函数。我的试用代码如下,但有错误。

f_add <- function(a = 1, b = 1){
  return(a+b)
}
f_minus <- function(c = 1, d = 2){
  return(c - d)
}
f_1 <- function(...){
  f_add(...) + f_minus(...)
}

错误:

f_1(a = 1, b =2 , c = 3, d = 4)
## Error in f_add(...) : unused arguments (c = 3, d = 4)
## Called from: f_add(...)
## Browse[1]> Q

所以在这里我要求任何简单的方法来设计功能。

2 个答案:

答案 0 :(得分:2)

您可以允许函数f_addf_minus使用未命名的参数,并忽略它们:

f_add <- function(a = 1, b = 1, ...){
  return(a+b)
}
f_minus <- function(c = 1, d = 2, ...){
  return(c - d)
}
f_1 <- function(...){
  f_add(...) + f_minus(...)
}

这允许你想要的计算:

f_1(a=1, b=2, c=3, d=4)
## [1] 2

答案 1 :(得分:1)

f_add <- function(a = 1, b = 1){
  return(a+b)
}
f_minus <- function(c = 1, d = 2){
  return(c - d)
}
f_1 <- function(a,b,c,d){
  f_add(a,b) + f_minus(c,d)
}

f_1(a=1,b=100,c=2000,d=5)
2096