使用body,formals和environment方法修改R中的函数

时间:2016-10-30 17:24:29

标签: r methods arguments

功能定义

f <- function(x) {
   x + x*x
}

3种方法,即bodyformalsenvironment可用于修改

> 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)不起作用。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:21)

您需要使用alist

formals(f) = alist(x =, y =)

alist根据未评估的参数构建一个列表。