R:在上级函数中赋值

时间:2016-11-25 15:24:00

标签: r

可能是一个简单的问题,但我自己无法弄明白,与环境和范围合作仍然让我感到困惑。

我有一个函数,嵌套在一个函数中。我想要实现的是从其父级的嵌套函数中分配一个值(使用assign函数,我已经读过使用<<-可能是危险的)并在那里使用它:

myfun <- function(m) {
  m*3*y
  f1 <- function() {
    assign(x = y, value = 2, envir = parent.frame())
  }
  f1()
}

但是,会返回错误:

Error in myfun(m = 5) : object 'y' not found

另外,如果我有一个函数,嵌套在一个函数中,嵌套在一个函数中,嵌套在一个函数中等等,我想选择在哪个上层从最低级函数赋值?

1 个答案:

答案 0 :(得分:1)

两点。在使用f1()进行计算之前,您需要运行yx函数的assign参数具有特征。

myfun <- function(m) {
  f1 <- function() {
  assign(x = "y", value = 2, envir = parent.frame())
  }
  f1()
  m*3*y
}

myfun(5)