Модуль Python rpy2: обновить глобальную среду R - PullRequest
1 голос
/ 16 ноября 2011

В документации по rpy2 говорится, что объект robjects.r предоставляет доступ к глобальной среде R.Есть ли способ «обновить» эту глобальную среду до ее начального состояния?

Я хотел бы иметь возможность восстановить глобальную среду до состояния, в котором она была при импорте модуля rpy2.robjects, но еще неиспользуемый.Таким образом, мне не нужно беспокоиться об утечках памяти при длительном выполнении заданий или других неожиданных побочных эффектах.Да, обновление среды может привести к появлению другой категории ошибок, но я верю, что в моем случае это будет победа.

Ответы [ 2 ]

2 голосов
/ 16 ноября 2011

Если ваш вопрос буквально означает, что он говорит, если вы просто хотите очистить .GlobalEnv, вы можете сделать это одной строкой:

rm(list = ls(all.names=TRUE))

Бит all.names=TRUE необходим, потому чтонекоторые имена объектов не возвращаются vanilla ls().Например:

x <- rnorm(5)
ls()
# [1] "x"

# Doesn't remove objects with names starting with "."
rm(list=ls())
ls(all.names = TRUE)
# [1] ".Random.seed"

# Removes all objects
rm(list = ls(all.names=TRUE))
ls(all.names = TRUE)
# character(0)   
0 голосов
/ 16 ноября 2011

В R есть только / one / "global environment"; он инициализируется при запуске R Вы можете очистить его членов, как указывает Джош, но если вам это понадобится, это может означать, что вам лучше создавать новые среды и переключаться между ними или удалять их, когда они больше не нужны.

...