首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除除环境外的所有变量

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

Stack Overflow用户
提问于 2018-03-26 18:34:15
回答 1查看 117关注 0票数 0

我想要删除所有全局变量,但定义的环境中的变量除外。

假设我有以下内容:

代码语言:javascript
复制
my.env = new.env()
assign("a", 123, envir = my.env)
my.env$somestring = "Variable mat as vector string"

还有一些全局变量:

代码语言:javascript
复制
Age     <-  as.numeric(42)
HbA     <-  as.numeric(2)
WHR     <-  as.numeric(1.3)

我知道我可以删除除setdiff之外的所有全局变量

代码语言:javascript
复制
setdiff(ls(),'Age')
#[1] "HbA"    "my.env" "WHR" 

但是当我调用下面的代码时,我得到了一个错误。这是意料之中的,因为如果我没有弄错的话,my.env实际上是一个指针

代码语言:javascript
复制
setdiff(ls(), my.env)
#Error in as.vector(x, mode) : 
#  cannot coerce type 'environment' to vector of type 'any'

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

EN

回答 1

Stack Overflow用户

发布于 2018-03-26 18:48:41

试一试

代码语言:javascript
复制
to.del <- setdiff(ls(), "my.env")
rm(list = to.del)

# not relevant anymore
eval(parse(text = paste0("rm(", to.del, ")")))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49489375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档