我有一个根代码,其中有许多脚本。例如在运行了前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"