[英]R: Passing function arguments to override defaults of inner functions
在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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.