Общая фраза для захвата того, что пользователь предоставил в качестве аргумента функции: deparse(substitute(foo))
. Эта функция похожа на функцию @Ian Ross, но использует стандартную идиому:
ifrm <- function(obj, env = globalenv()) {
obj <- deparse(substitute(obj))
if(exists(obj, envir = env)) {
rm(list = obj, envir = env)
}
}
где я предполагаю, что вы когда-либо захотите удалить объекты только из глобальной среды, следовательно, по умолчанию, но вы можете предоставить среду через env
. И вот оно в действии:
> a <- 1:10
> ls()
[1] "a" "ifrm"
> ifrm(a)
> ls()
[1] "ifrm"
> ifrm(a)
> ls()
[1] "ifrm"