功能定义
f <- function(x) {
x + x*x
}
3种方法,即body
,formals
和environment
可用于修改
体
> body(f)
{
x + x * x
}
如果我们想使用body
> body(f) <- expression({x*x*x})
> f
function (x)
{
x * x * x
}
看到它改变了。
缩甲醛
如果要使用formals
更改参数(x = 3, y = 6)
> formals(f) <- list(x = 3, y = 4)
> f
function (x = 3, y = 4)
{
x * x * x
}
看到它改变了。
但是如果想要将参数更改为(x, y)
。显然formals(f) <- list(x, y)
不起作用。
任何帮助将不胜感激。
答案 0 :(得分:21)
您需要使用alist
:
formals(f) = alist(x =, y =)
alist
根据未评估的参数构建一个列表。