R:传递函数参数以覆盖内部函数的默认值

标签 r function overriding defaults

在 R 中,我想做这样的事情:
我有一个函数 f1,它有一个带有默认值的参数; k=3。

f1 = function(x,k=3){
    u=x^2+k
    u
}

然后我定义了第二个函数 f2 调用 f1。
f2 = function(z,s){
    s*f1(z)
}

允许 f2 的用户覆盖内部函数 f1 中 k 的默认值的最干净的方法是什么?一种简单的解决方案是将 f2 重新定义为:
f2 = function(z,s,K){
    s*f1(z,K)
}

但是,如果我要处理大量的函数层次结构,我觉得这可能会很麻烦。有什么建议?谢谢。

最佳答案

解决这个问题的最简单方法是使用 ...争论。这允许您将任意数量的附加参数传递给其他函数:

f1 = function(x,k=3){
    u=x^2+k
    u
}

f2 = function(z,s, ...){
    s*f1(z, ...)
}

您会看到这通常用于使用许多可选参数调用其他函数的函数中,例如 plot .

关于R:传递函数参数以覆盖内部函数的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18602407/

相关文章:

performance - 为什么 PostgreSQL 多次调用我的 STABLE/IMMUTABLE 函数?

c++ - 将模板化类型初始化为 "zero"

html - 有没有办法从标签中删除所有格式 - 并应用已经是 "in force"的任何样式?

向量上的 R 重复数学方程式

python - 将集合划分为元素数量相等的子集

r - 在点所属的 shapefile 中查找多边形......为什么它适用于某些 shapefile,而不适用于其他 shapefile?

function - Clojure 星号特殊形式(fn*、let* 等...)

css - 如何用外部 CSS 覆盖内联 CSS(特别是具有特定类的 div)?

java - 是否可以在同一个包中拥有两个同名的类?

r - 如何强制标签适合 VennDiagram?