在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)
}
但是,如果我处理大量的功能,我觉得这可能很麻烦。有什么建议?感谢。
答案 0 :(得分:5)
处理此问题的最简单方法是使用...
参数。这允许您将任意数量的附加参数传递给其他函数:
f1 = function(x,k=3){
u=x^2+k
u
}
f2 = function(z,s, ...){
s*f1(z, ...)
}
您会看到这个函数通常用于调用其他具有许多可选参数的函数,例如plot
。