假设我们具有以下功能:foo <- function(x){ line1 <- x line2 <- 0 line3 <- line1 + line2 return(line3)}我们想将第二行更改为: line2 <- 2你会怎么做?一种方法是使用fix(foo)并更改功能。另一种方法是再次编写该函数。还有另一种方法吗?(请记住,任务是仅更改第二行)我想要以某种方式将函数表示为字符串的向量(嘛,字符),然后更改其值之一,然后再次将其转换为函数。
3 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
> body(foo)[[3]] <- substitute(line2 <- 2)
> foo
function (x)
{
line1 <- x
line2 <- 2
line3 <- line1 + line2
return(line3)
}
(“ {”是body(foo)[[1]],每一行都是列表的后续元素。)
慕田峪9158850
TA贡献1794条经验 获得超7个赞
您可以使用“ 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})
- 3 回答
- 0 关注
- 440 浏览
添加回答
举报
0/150
提交
取消