r - 使用正文,形式和环境方法修改R中的函数

标签 r methods arguments

函数定义

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

可以使用bodyformalsenvironment 3种方法进行修改

body
> 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)无法使用。

任何帮助将不胜感激。

最佳答案

您需要使用alist:

formals(f) = alist(x =, y =)
alist根据其未评估的参数构造一个列表。

关于r - 使用正文,形式和环境方法修改R中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40331647/

相关文章:

c++ - 将所有模板类型传递给运算符而不指定所有类型

c - 缺少参数? C语言编程

r - Poisson MLE 的手工 R 代码

R igraph 部分填充的顶点

python - 是否可以在 R shiny 中运行 python 脚本

perl - 如何检查每次调用对象方法时的某些值?

.net - 泛型方法的返回类型

r - 如何将重复行的值合并为一行

methods - 无法更新Kotlin方法参数的值

c - C99 中的哪一节说数组在 C 中没有复制地传递给函数?