save(list = ls())内部函数不适用于赋值变量

时间:2018-09-13 21:24:32

标签: r

我试图将ls()与从父函数或全局环境带入函数环境的变量一起使用。我已经看到了:

How to search an environment using ls() inside a function?

这:

rm(list = ls()) doesn't work inside a function. Why?

但是我仍然有这个问题:我的ls()调用没有返回我知道在该函数环境内的 assign 变量。我不是要获得全局环境,而是要功能的环境。我想念什么?

g = function() {
  e = environment()
  get("f",envir = parent.env(e))
  print(f)
  save(list=ls(envir = e),file = "U:/GitHub/FunctionDebug.RData")
}

h = function() {
  g()
}

f <- 1
h()

[1] 1 # So I know that my variable is seen by the function!

当我调用将文件加载回我的Global Env时,我得到一个空的命名空间(函数环境不是e)。这仅发生在我从另一个函数环境分配的变量中。为什么?

load("U:/GitHub/FunctionDebug.RData")
> ls()
[1] "e"

0 个答案:

没有答案