Как удалить все переменные, кроме окружения

Я хотел бы удалить все глобальные переменные, кроме определенной среды с переменными в ней.

Скажи, что у меня есть следующее:

my.env = new.env()
assign("a", 123, envir = my.env)
my.env$somestring = "Variable mat as vector string"

А также некоторые глобальные переменные:

Age     <-  as.numeric(42)
HbA     <-  as.numeric(2)
WHR     <-  as.numeric(1.3)

Я знаю, что могу удалить все глобальные переменные, кроме одной setdiff

setdiff(ls(),'Age')
#[1] "HbA"    "my.env" "WHR" 

но когда я вызываю следующее, я получаю ошибку. Это ожидается, потому что my.env это на самом деле указатель, если я не ошибаюсь

setdiff(ls(), my.env)
#Error in as.vector(x, mode) : 
#  cannot coerce type 'environment' to vector of type 'any'

Как я могу удалить все переменные, но сохранить my.env? (с переменными в нем)

1 ответ

Пытаться

to.del <- setdiff(ls(), "my.env")
rm(list = to.del)

# not relevant anymore
eval(parse(text = paste0("rm(", to.del, ")")))
Другие вопросы по тегам