我试图将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"