在 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/