2016-06-23 121 views
1

我想將參數傳遞給兩個函數。我嘗試了...,但似乎...將所有參數傳遞給第一個函數。我的試用碼在下面,但有錯誤。將附加參數傳遞給兩個函數

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 

所以我在這裏要求任何簡單的方法來設計的功能。

+0

什麼是你真正想要做? –

+0

我想將頂層函數的參數傳遞給內部的兩個函數,但我不想逐個指定參數。 – Dylan

回答

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
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