R 设置本身是函数参数的函数的参数

R 设置本身是函数参数的函数的参数,r,function,parameters,R,Function,Parameters,我有一个R函数: smallFunction <- function(x,y=2,z=3){ x+y+z } smallFunction您可以将..从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, ...) } 正如@Fran

我有一个R函数:

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

smallFunction您可以将
..
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, ...) }
正如@Frank所提到的,您可以这样做来简化函数体

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

bigFunction可以定义y和z是什么意思?它们可能存在于全局环境中?用户应该能够在调用函数时手动输入值,而无需将值存储在全局环境中。他们有办法做到吗?好的,这是有道理的。是的,下面的答案和我对它的评论是做这件事的替代方法。感谢
tmp
功能是个好主意,从这里了解到:@rbatt这是一个非常好的问题/答案,在我的收藏夹中有:)
bigFunction <- function(a,b,x,c=smallFunction(x,y,z),...)
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
bigFunction <- function(a,b,x, func=smallFunction, ...) {
    tmp <- func(x=x, ...)
    a+b+x+tmp
}