簡體   English   中英

R:傳遞函數參數以覆蓋內部函數的默認值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM