2012-04-18 91 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