Moja pamięć jest zapychana przez kilka plików pośrednich (nazwij je temp1, temp2 itd.). Czy można je usunąć z pamięci bez robienia tego rm(temp1)
, rm(temp2)
pojedynczo? Próbowałem rm(list(temp1, temp2, etc.))
, ale to nie działa.
86
rm(list = ls(all = TRUE))
jeśli chcesz mieć pewność, że dostaniesz wszystko.%>%
? Na przykładlist(...) %>% rm(list = .)
list
? Wydaje mi się niepotrzebnie skomplikowane wpisywanie wszystkich nazw zmiennych zamiast tylko autouzupełniania TAB w drugiej opcji.Inne rozwiązanie
rm(list=ls(pattern="temp"))
, usuń wszystkie obiekty pasujące do wzorca.źródło
ls(...)
zrobił, ale teraz myślę, że to jak ls bash funkcji Unix?) - ups, Josh Paulson stosować różnorodne specyficzne opisaną przez @SamTo remove everything in the memory, you can say: rm(list = ls())
pattern="^temp"
złapie tylko zmienną zaczynającą się od „temp”, więc nie zmiennąABCtemp
.Inną odmianą, którą możesz wypróbować, jest (rozwijanie odpowiedzi @ mnel), jeśli masz wiele temp'x '.
tutaj „n” może oznaczać liczbę obecnych zmiennych tymczasowych
rm(list = c(paste("temp",c(1:n),sep="")))
źródło
Lub używając wyrażeń regularnych
"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)
źródło