如何只删除在R studio环境中运行最后一个脚本时获得的对象



我有一个根代码,其中有许多脚本。例如,在运行了前4个脚本之后,我可能需要取消从第4个脚本获得的环境中的对象。有可能吗?另一种选择是rm((,但通过这种方式,我必须重新运行所有脚本,这需要一段时间,因为我要加载很多数据。

定义函数rm_new()(在"根代码"中(:

rm_new=function( old ) {
current=ls(,envir=parent.frame())
to_delete = current[!(current %in% old)]
rm( list=to_delete,envir=parent.frame() )
}

当你到达"根代码"的末尾时,记住你想保留的对象:

obj_to_keep=c("obj_to_keep",ls())

现在,您可以添加任何您喜欢的内容,并在完成后使用rm_new((将其删除:

a=1:100
obj_to_keep=c("obj_to_keep",ls())
b=1:50
ls()
# [1] "a"           "b"           "obj_to_keep" "rm_new"   
rm_new( old=obj_to_keep )
ls()
# [1] "a"           "obj_to_keep" "rm_new"  

相关内容

最新更新