r - 设置函数的参数,该函数本身就是函数的参数

标签 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),...)

谢谢

最佳答案

您可以通过...来自 bigFunctionsmallFunction

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 - 设置函数的参数,该函数本身就是函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31820115/

相关文章:

r - bsplus : Carousel for dynamic number of plots in Shiny

r - 选择多个值对行进行子集化

R 将函数调用包装到另一个调用中,而不使用字符串操作

javascript - 限制 Javascript 函数接受的参数数量

c++ - 基本 C++ 函数指针和结构

javascript - 用命名函数替换匿名函数(在 jQuery 中)

ruby-on-rails - Rails : . require() 而实际上不需要它?

r - 向 scatter3d 图添加图例

delphi - DCC 无法决定函数需要的参数数量

c++ - 在 C++ 中有什么方法可以确保在编译时没有在任何地方使用非模板函数?