繁体   English   中英

如何删除除环境以外的所有变量

[英]How to delete all variables except an environment

我想删除除其中包含变量的已定义环境以外的所有全局变量。

说我有以下几点:

my.env = new.env()
assign("a", 123, envir = my.env)
my.env$somestring = "Variable mat as vector string"

还有一些全局变量:

Age     <-  as.numeric(42)
HbA     <-  as.numeric(2)
WHR     <-  as.numeric(1.3)

我知道我可以删除所有全局变量,但可以使用setdiff删除其中一个

setdiff(ls(),'Age')
#[1] "HbA"    "my.env" "WHR" 

但是当我拨打以下电话时,我得到了一个错误。 这是可以预期的,因为如果我没有记错的话, my.env实际上是一个指针

setdiff(ls(), my.env)
#Error in as.vector(x, mode) : 
#  cannot coerce type 'environment' to vector of type 'any'

我如何删除所有变量但保留my.env (其中包含变量)

尝试

to.del <- setdiff(ls(), "my.env")
rm(list = to.del)

# not relevant anymore
eval(parse(text = paste0("rm(", to.del, ")")))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM