我正在尝试从父环境中删除对象。
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
这有助于澄清我对框架的误解。
答案 0 :(得分:10)
我认为您的框架是正确的,只是rm
尝试删除a
本身,而不是评估a
以获取要删除的变量的引用名称。请改用list
参数:
rm(list=a,envir=sys.frame(-1))
答案 1 :(得分:1)
以下代码适用于我。
myEnv = new.env()
assign('xx', 5, envir=myEnv)
get('xx', envir=myEnv)
rm('xx', envir=myEnv)