Прямо перед тем, как функция вернется в R
, я хотел бы удалить все локальные переменные , за исключением одной или двух.
Вот минимальный воспроизводимый пример:
f <- function(){
keep_this_local_var <- 3
remove_this_local_var <- 4
rm(setdiff(ls(environment()), c("keep_local_var"))) # doesn't work
return(ls(environment()))
}
f() # should only be 3
Мотивация: моя "реальная жизнь" f
функция вызывает source()
несколько раз. При каждом вызове source()
будет возможно большое количество случайных переменных. Я не буду знать имена каждой переменной заранее; тем не менее, у меня есть короткий список имен переменных, которые я хочу сохранить . Подобный код работал для меня в прошлом, но когда я source
до .GlobalEnv
.