可能是一个简单的问题,但我自己无法弄明白,与环境和范围合作仍然让我感到困惑。
我有一个函数,嵌套在一个函数中。我想要实现的是从其父级的嵌套函数中分配一个值(使用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
另外,如果我有一个函数,嵌套在一个函数中,嵌套在一个函数中,嵌套在一个函数中等等,我想选择在哪个上层从最低级函数赋值?
答案 0 :(得分:1)
两点。在使用f1()
进行计算之前,您需要运行y
。 x
函数的assign
参数具有特征。
myfun <- function(m) {
f1 <- function() {
assign(x = "y", value = 2, envir = parent.frame())
}
f1()
m*3*y
}
myfun(5)