Escrevi isso para remover todos os objetos, exceto funções do ambiente atual (a linguagem de programação usada é R com IDE R-Studio):
remove_list=c() # create a vector
for(i in 1:NROW(ls())){ # repeat over all objects in environment
if(class(get(ls()[i]))!="function"){ # if object is *not* a function
remove_list=c(remove_list,ls()[i]) # ..add to vector remove_list
}
}
rm(list=remove_list) # remove all objects named in remove_list
Notas-
O argumento "lista" em rm (lista =) deve ser um vetor de caracteres.
O nome de um objeto na posição i do ambiente atual é retornado de ls () [i] e o próprio objeto de get (ls () [i]). Portanto, a classe de um objeto é retornada da classe (get (ls () [i]))
rm(list=setdiff(ls(all.names=TRUE), lsf.str(all.names=TRUE)))