设置一个函数的参数,它本身就是一个函数的参数
Set parameters of a function which is itself a parameter of a function
我有一个 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),...)
谢谢
您可以将 ...
从 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
}
我有一个 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),...)
谢谢
您可以将 ...
从 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
}