Eliminar múltiples objetos con rm ()

Mi memoria se está atascando por un grupo de archivos intermedios (llámalos temp1, temp2, etc.). ¿Es posible eliminarlos de la memoria sin hacer rm(temp1) , rm(temp2) uno por vez? Intenté rm(list(temp1, temp2, etc.)) , pero parece que no funciona.

Convierte la lista en un vector de caracteres (no en un vector de nombres)

 rm(list = c('temp1','temp2')) 

o

 rm(temp1, temp2) 

Otra solución rm(list=ls(pattern="temp")) elimina todos los objetos que coinciden con el patrón.

O usando expresiones regulares

 "rmlike" <- function(...) { names <- sapply( match.call(expand.dots = FALSE)$..., as.character) names = paste(names,collapse="|") Vars <- ls(1) r <- Vars[grep(paste("^(",names,").*",sep=""),Vars)] rm(list=r,pos=1) } rmlike(temp) 

Otra variación que puedes probar es (expandiendo la respuesta de @ mnel) si tienes muchos temp’x ‘.

aquí “n” podría ser la cantidad de variables temporales presentes

 rm(list = c(paste("temp",c(1:n),sep="")))