为了保持全局环境的清洁,我使用“ new.env()
”创建了一些环境。是否可以删除全局环境中的所有对象,但保留所有使用“ new.env()
”创建的环境?
到目前为止,我已经尝试过:
rm(list=ls())
new.env()
”创建的环境。 rm(list = ls()[! ls() %in% c("a")])
想要的行为:
删除应从“ global.env”中删除所有对象,但保留所有使用“ new.env()
”创建的环境。
答案 0 :(得分:0)
我们可以使用:
rm(list=ls(all=TRUE)[sapply(mget(ls(all=TRUE)), function(x) !is.environment(x))])
在新的空环境中进行测试:
s<-9
iris1<-iris[1:24,]
e2<-new.env()
e3<-new.env()
e4<-new.env()
接下来,我们删除所有不是环境的东西(其缺点是我们不是在测试由new.env
专门创建的环境,而是在{{1}内的任何“对象”中进行测试) }。
测试一下:
.Globalenv
只留下环境。