我试图从父环境中删除一个对象.
rm_obj <- function(obj){
a <-deparse(substitute(obj))
print (a)
print(ls(envir=sys.frame(-1)))
rm(a,envir=sys.frame(-1))
}
> x<-c(1,2,3)
> rm_obj(x)
[1] "x"
[1] "rm_obj" "x"
Warning message:
In rm(a, envir = sys.frame(-1)) : object 'a' not found
Run Code Online (Sandbox Code Playgroud)
这将有助于澄清我对框架的误解.
Jon*_*ang 10
我认为你的框架是正确的,它只是rm试图删除a自己而不是评估a以获取要删除的变量的引用名称.请改用list参数:
rm(list=a,envir=sys.frame(-1))
Run Code Online (Sandbox Code Playgroud)