gpt4 book ai didi

r - 有效地将环境从内部功能转移到全局环境

转载 作者:行者123 更新时间:2023-12-04 20:08:56 25 4
gpt4 key购买 nike

我有一个在其中创建环境的函数,我希望将该环境分配给全局环境。目前我通过将环境分配给 globalenv() 来做到这一点。作为最后一步 -- 如下:

funfun <- function(inc = 1){
dataEnv <- new.env()
dataEnv$d1 <- 1 + inc
dataEnv$d2 <- 2 + inc
dataEnv$d3 <- 2 + inc
assign('dataEnv', dataEnv, envir = globalenv())
}

感觉我应该可以做点什么 dataEnv保持时函数 funfun结束(最后保存复制环境)但是我的尝试,例如 dataEnv <- new.env(parent = globalenv()) ,没有工作。

为什么会失败?这可能吗?

另外,这样做最有效的方法是什么?

我的表有时非常大,随着项目的增长,复制将成为一个问题。

最佳答案

退出函数时,您的环境不会被破坏。您只需要返回对它的引用。

funfun <- function(inc = 1){
dataEnv <- new.env(parent=globalenv())
dataEnv$d1 <- 1 + inc
dataEnv$d2 <- 2 + inc
dataEnv$d3 <- rnorm(10000)
return(dataEnv)
}


myEnv <- funfun()
object.size(myEnv)

拿出一些东西
head(myEnv$d3)

关于r - 有效地将环境从内部功能转移到全局环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21177499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com