我想编写一个脚本main.r
,将工作空间返回到运行前的状态(即,在脚本结束时,删除所有且仅删除已添加到工作空间的对象)。运行以下:
#main.r
initial.objects <- objects()
tmp1 <- 1
remove(list = setdiff(objects(), initial.objects)
source('main.r')
来自 R 控制台的via按需要工作。但是,如果将其留在工作目录中,这在 Splustmp1
中不起作用(当我单独运行每一行而不是获取整个文件时,它确实起作用)。进一步调查,我发现在 Robjects()
中,即使在调用source()
. 在 Splus 中,objects()
似乎直到source()
调用结束才“知道”已添加到工作区的对象。
问:怎么回事?我该怎么做才能获得类似于main.r
在 Splus 工作的东西?