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.
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.
Odpowiedzi:
Ustaw listę jako wektor znaków (nie wektor nazw)
rm(list = c('temp1','temp2'))
lub
rm(temp1, temp2)
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.
pattern="^temp"złapie tylko zmienną zaczynającą się od „temp”, więc nie zmienną ABCtemp.
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)