2012-04-18 69 views
7

是否可以在運行時更改R函數中形式參數的默認值?在運行時更改R函數的默認參數

假設,我們有功能

f <- function(x=1) { 
    ... 
} 

可不知何故,我從1更改x的默認值,比方說,2?


由於提前,
斯文

+0

一個有趣的問題,但聽起來有點危險。你爲什麼想這麼做? – csgillespie 2012-04-18 15:05:10

+0

我想爲R實現一個虛擬機,因此我需要知道函數簽名是否可以假定爲不可變的。 – 2012-04-18 15:07:40

+0

http://stackoverflow.com/questions/9895811/can-i-tell-the-r-plyr-package-to-work-in-parallel-by-default/9895903#9895903 – GSee 2012-04-19 02:57:49

回答

4

是的,Defaults包可以讓你做到這一點。

+0

非常感謝! – 2012-04-18 15:19:20

+4

我發現了另一種方式來完成這項任務: formals(f)= pairlist(x = 1) – 2012-04-18 16:07:44

+3

@SvenHager:這實際上是Defaults所做的,您可能想使用'alist'而不是'list'或'pairlist '。 – 2012-04-18 16:25:33

0

的替代(在不同的SO post示出)是使用功能formals,例如:

formals(f) <- 2