在R中编辑功能有哪些方法?

假设我们具有以下功能:


foo <- function(x)

{

    line1 <- x

    line2 <- 0

    line3 <- line1 + line2

    return(line3)

}

我们想将第二行更改为:


    line2 <- 2

你会怎么做?


一种方法是使用


fix(foo)

并更改功能。


另一种方法是再次编写该函数。


还有另一种方法吗?(请记住,任务是仅更改第二行)


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


婷婷同学_
浏览 466回答 3
3回答

慕莱坞森

> body(foo)[[3]] <- substitute(line2 <- 2)> foofunction (x)&nbsp;{&nbsp; &nbsp; line1 <- x&nbsp; &nbsp; line2 <- 2&nbsp; &nbsp; line3 <- line1 + line2&nbsp; &nbsp; return(line3)}(“ {”是body(foo)[[1]],每一行都是列表的后续元素。)

茅侃侃

您可以使用“ body ”功能。此函数将返回函数的主体:fnx = function(a, b) { return(a^2 + 7*a + 9)}body(fnx)# returns the body of the function因此,“编辑”功能的一种好方法是在赋值语句的左侧使用“ body”:body(fnx) = expression({a^2 + 11*a + 4})
打开App,查看更多内容
随时随地看视频慕课网APP