Mein Gedächtnis wird durch eine Reihe von Zwischendateien verstopft (nennen Sie sie temp1, temp2 usw.). Ist es möglich , sie aus dem Speicher zu entfernen , ohne dabei rm(temp1)
, rm(temp2)
einen nach dem anderen? Ich habe es versucht rm(list(temp1, temp2, etc.))
, aber das scheint nicht zu funktionieren.
84
rm(list = ls(all = TRUE))
wenn Sie sicher sein wollen, alles zu bekommen.%>%
? Wielist(...) %>% rm(list = .)
list
? Es scheint mir unnötig kompliziert zu sein, alle Variablennamen einzugeben, anstatt nur die automatische Vervollständigung von TAB in der zweiten Option.Eine andere Lösung
rm(list=ls(pattern="temp"))
: Entfernen Sie alle Objekte, die dem Muster entsprechen.quelle
ls(...)
getan hat, aber jetzt denke ich , es ist wie die Unix - Bash - Funktion ls?) - hoppla, verwendet Josh Paulson eine bestimmte Sorte beschrieben von @ SamTo remove everything in the memory, you can say: rm(list = ls())
pattern="^temp"
wird nur eine Variable ab "temp" abgefangen, also nicht die VariableABCtemp
.Oder mit regulären Ausdrücken
"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)
quelle
Eine andere Variante, die Sie ausprobieren können, ist (Erweitern der Antwort von @ mnel), wenn Sie viele Temp'x 'haben.
hier könnte "n" die Anzahl der vorhandenen temporären Variablen sein
rm(list = c(paste("temp",c(1:n),sep="")))
quelle