【发布时间】:2011-07-20 18:12:59
【问题描述】:
我想编写一个脚本main.r,将工作空间返回到运行前的状态(即,在脚本结束时,删除所有且仅删除已添加到工作空间的对象) .运行以下:
#main.r
initial.objects <- objects()
tmp1 <- 1
remove(list = setdiff(objects(), initial.objects)
从 R 控制台通过source('main.r') 可以按需要工作。但是,这在 Splus 中不起作用,tmp1 留在工作目录中(当我单独运行每一行而不是获取整个文件时它确实起作用)。进一步调查,我发现在 R objects() 中,即使在调用 source() 的中间,也会跟踪进入工作区的对象。在 Splus 中,objects() 似乎直到 source() 调用结束时才“知道”已添加到工作区的对象。
问:发生了什么事?我该怎么做才能得到类似于main.r 在 Splus 工作的东西?
【问题讨论】: