从脚本

时间:2015-06-08 16:49:47

标签: r environment-variables

我想在脚本运行期间清除环境。

我使用的是(略有改动的)功能,我已经看过here

clearEnv <- function(env = parent.frame())
{
  rm(list = setdiff( ls(all.names=TRUE, env = env), lsf.str(all.names=TRUE, env = env)),envir = env)
}

但这仅适用于脚本之外。我希望在将其他任何东西保存为变量之前,在我的个人R包的脚本中调用此函数。

有没有办法做到这一点?也许在某个地方嵌套函数?

谢谢!

修改 认为它足够清楚 - 显然不是,所以这是一个最小的例子:

script.R有两个函数

clearEnv <- function(env = parent.frame())
{
  rm(list = setdiff( ls(all.names=TRUE, env = env), lsf.str(all.names=TRUE, env = env)),envir = env)
}

myScript <- function(){
 clearEnv()
 /*do work*/
}

- 这不起作用。我发现根本没有清除环境,因为在运行thisShouldVanish <- 0之前保存变量时,请说myScript(),之后它仍然存在。

如果我跑

clearEnv()
myScript()

它按预期工作,但我想只运行myScript() 而不是分开两个函数调用...

我提到过,这个函数是一个包的一部分,所以这些函数和其他任何东西都不得在环境中 - &gt;删除中期应该没问题。

我希望我能够更好地解释它。

0 个答案:

没有答案