Mi memoria se está obstruyendo con un montón de archivos intermedios (llámelos temp1, temp2, etc.). ¿Es posible eliminarlos de la memoria sin hacerlo rm(temp1), rm(temp2)uno a la vez? Lo intenté rm(list(temp1, temp2, etc.)), pero no parece funcionar.
84

rm(list = ls(all = TRUE))si quieres estar seguro de obtener todo.%>%? Tales comolist(...) %>% rm(list = .)list? Me parece innecesariamente complicado escribir todos los nombres de las variables en lugar de solo TAB autocompletar en la segunda opción.Otra solución es
rm(list=ls(pattern="temp"))eliminar todos los objetos que coincidan con el patrón.fuente
ls(...)hizo, pero ahora supongo que es como la función de bash de Unix ls?) - Ups, Josh Paulson usó una variedad específica descrita por @SamTo remove everything in the memory, you can say: rm(list = ls())pattern="^temp"solo capturará la variable que comience por "temp", por lo que no la variableABCtemp.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)fuente
Otra variación que puede probar es (expandiendo la respuesta de @ mnel) si tiene muchos temp'x '.
aquí "n" podría ser el número de variables temporales presentes
rm(list = c(paste("temp",c(1:n),sep="")))fuente