Как удалить все переменные, кроме окружения
Я хотел бы удалить все глобальные переменные, кроме определенной среды с переменными в ней.
Скажи, что у меня есть следующее:
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, ")")))