为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

潇湘沐 2019-10-19 15:12:44
假设我们具有以下功能: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]],每一行都是列表的后续元素。)


查看完整回答
反对 回复 2019-10-19
?
慕田峪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})


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 393 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信