Я хотел бы написать сценарий main.r
, который возвращает рабочее пространство в состояние, в котором он находился до запуска (т. Е. В конце сценария удалите все и только объекты, которые были добавлены в рабочее пространство) , Выполнение следующего:
#main.r
initial.objects <- objects()
tmp1 <- 1
remove(list = setdiff(objects(), initial.objects)
через source('main.r')
с консоли R работает как нужно. ОДНАКО, это НЕ работает в Splus с tmp1
, оставленным в рабочем каталоге (это работает, когда я запускаю каждую строку отдельно, а не извлекаю весь файл). Пройдя немного дальше, я обнаружил, что в R objects()
отслеживает объекты, входящие в рабочую область, даже в СРЕДНИЙ вызов source()
. В Splus objects()
, похоже, не "знает" об объектах, которые были добавлены в рабочую область до конца вызова source()
.
В: Что происходит? Что я могу сделать, чтобы что-то похожее на main.r
работало в Splus?