La soluzione di base è caricare i dati, rimuovere ciò che non si desidera e salvare come nuovi, pulire i dati.
Un altro modo per gestire questa situazione è quello di controllare RDATA caricato caricandolo al proprio ambiente
sandbox <- new.env()
load("some_old.RData", sandbox)
Ora è possibile vedere ciò che è dentro
ls(sandbox)
sapply(ls(sandbox), function(x) object.size(get(x,sandbox)))
sono disponibili diverse posibilities :
- scrivere cosa si vuole nuova RDATA:
save(A, B, file="clean.RData", envir=sandbox)
- rimuovere ciò che non vuoi dall'ambiente
rm(x, z, u, envir=sandbox)
- make copia di variabili che si desidera in spazio di lavoro globale e rimuovere
sandbox
faccio di solito qualcosa di simile alla terza opzione. Carica i miei dati, esegui controlli, trasformazioni, copia i dati finali nello spazio di lavoro globale e rimuovi gli ambienti.
È sempre possibile implementare ciò che si desidera.Così
- caricare i dati
vars <- load("some_old.RData")
- Get dimensioni
vars_size <- sapply(vars, function(x) object.size(get(x)))
- Order loro
vars <- vars[order(vars_size, decreasing=TRUE)]
vars_size <- vars_size [order(vars_size, decreasing=TRUE)]
- Fai la finestra di dialogo (dipende dal sistema operativo, ecco Windows)
vars_with_size <- paste(vars,vars_size)
vars_to_save <- select.list(vars_with_size, multiple=TRUE)
- Rimuovi quello che non si vuole
rm(vars[!vars_with_size%in%vars_to_save])
a Nizza sotto forma di dimensioni dell'oggetto che uso soluzione basata su getAnywhere(print.object_size)
pretty_size <- function(x) {
ifelse(x >= 1024^3, paste(round(x/1024^3, 1L), "Gb"),
ifelse(x >= 1024^2, paste(round(x/1024^2, 1L), "Mb"),
ifelse(x >= 1024 , paste(round(x/1024, 1L), "Kb"),
paste(x, "bytes")
)))
}
Poi nel 4. si può usare paste(vars, pretty_size(vars_size))
Dai un'occhiata a questa domanda correlata http://stackoverflow.com/questions/2822532/how-can-i-neatly-clean-my-r-workspace-while-preserving-certain-objects –