gpt4 book ai didi

r - 在 R 中编辑函数有哪些方法?

转载 作者:行者123 更新时间:2023-12-03 06:12:31 27 4
gpt4 key购买 nike

假设我们有以下函数:

foo <- function(x)
{
line1 <- x
line2 <- 0
line3 <- line1 + line2
return(line3)
}

我们要将第二行更改为:

    line2 <- 2

你会怎么做?

一种方法是使用

fix(foo)

并更改功能。

另一种方法是重新编写该函数。

还有别的办法吗? (请记住,任务只是更改第二行)

我想要的是某种方式将函数表示为字符串(好吧,字符)向量,然后更改其中一个值,然后再次将其转换为函数。

最佳答案

有一个body<-函数,让您分配函数的新内容。

body(foo)[[3]] <- substitute(line2 <- 2)
foo
#-----------
function (x)
{
line1 <- x
line2 <- 2
line3 <- line1 + line2
return(line3)
}

(“{”是body(foo)[[1]],每行是列表的连续元素。因此第二行是表达式列表中的第三个元素。插入的元素需要是未计算的表达式而不是文本。)

还有对应的formals<-函数允许人们对参数对列表执行类似的操作。

注:fixInNamespace可能比fix更好的选择函数是否将调用已加载包中的辅助功能资源。当从控制台使用时, fix将把结果分配给.GlobalEnv .

关于r - 在 R 中编辑函数有哪些方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2458013/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com