设置函数的参数,该函数本身是函数的参数

时间:2015-08-04 21:58:53

标签: r function parameters

我有一个R函数:

smallFunction <- function(x,y=2,z=3){ x+y+z }

我想将此函数的结果定义为较大参数的默认值:

bigFunction <- function(a,b,x,c=smallFunction(x,y,z))

如何定义y和z值?知道它们可以定义或保留默认值。 我真的不想做这样的事情:

bigFunction <- function(a,b,x,c=smallFunction(x,y,z),y=2,z=3)

因为实际上我有很多smallFunction的默认参数

我宁愿这样:

bigFunction <- function(a,b,x,c=smallFunction(x,y,z),...)

由于

1 个答案:

答案 0 :(得分:3)

您可以将...bigFunction传递到smallFunction

smallFunction <- function(x, y=2, z=3){ x+y+z }
bigFunction <- function(a,b,x, func=smallFunction, ...) { a+b+x+func(x=x, ...) }

例如,

bigFunction(1, 2, 3, y=10)
# [1] 22

正如@Frank所提到的,你可以做这样的事情来简化函数体

bigFunction <- function(a,b,x, func=smallFunction, ...) {
    tmp <- func(x=x, ...)
    a+b+x+tmp
}