使用环境将对象传递给嵌套函数

时间:2017-09-12 00:04:20

标签: r environment nested-function

我想将对象从一个函数传递到另一个嵌套函数分配环境。 下面是我的代码示例,它不起作用。如何通过在函数中分配环境来实现这一点?

sumi <- function(x,y) {
    my.env <- new.env()

    my.env$rumi <- function() {
        my.env$k <- x[1]
        my.env$f <- y[1]
    }
    k <- get("k", my.env)
    f <- get("f", my.env)
    z <- k+f
    return(z)
}

1 个答案:

答案 0 :(得分:0)

代码定义但从不运行rumi所以如果从不运行它将创建的对象。

添加标记为###的行有效:

sumi <- function(x,y) {
    my.env <- new.env()

    my.env$rumi <- function() {
        my.env$k <- x[1]
        my.env$f <- y[1]
    }
    my.env$rumi()  ###
    k <- get("k", my.env)
    f <- get("f", my.env)
    z <- k+f
    return(z)
}
sumi(1, 2)
## [1] 3