Sto cercando di scaricare un czv con gzip e caricarlo come oggetto R senza salvarlo prima sul disco. Posso farlo con i file compressi ma non riesco a farlo funzionare con gzfile
o gzcon
.Leggi gzip csv direttamente da un URL in R
Esempio:
grabRemote <- function() {
temp <- tempfile()
download.file("http://dumps.wikimedia.org/other/articlefeedback/aa_combined-20110321.csv.gz", temp)
aap.file <- read.csv(gzfile(temp), as.is = TRUE)
unlink(temp)
return(aap.file)
}
che scarica un (piccolo) gz file compresso contenente Wikipedia article feedback data (non è importante, ma solo per indicare che non è gigante o nefasto).
Il codice che ho funziona bene ma sento che mi manca qualcosa di molto ovvio ricorrendo alla creazione e alla distruzione di un file temporaneo.
Sì, sono quasi sicuro al 70% che tu o JD abbiate risposto a qualcosa di simile. Ho effettivamente ottenuto l'idea di 'tempfile' da una tua precedente risposta relativa alle cartelle compresse. Ma non riesco a trovare qualcosa w/gzfile/gzcon, che sembrano comportarsi in modo diverso da alcune delle altre funzioni relative ai file o alle connessioni. –
Puoi distillarlo? In realtà ho usato lo stesso trucco dello 'streaming' da un file gzip'to nei primi anni '90, quando lo spazio su disco era scarso e ho mantenuto i risultati della simulazione gzip'ed. Quindi la capacità di ottenere in modo trasparente la funzionalità "gunzip" in una libreria C è piuttosto vecchia e standard. –
Segnalo come risposta per ora. Potrei tornare indietro e darmi una risposta migliore dopo qualche scherzo in giro con w/gzcon (che sembra l'angolo più promettente). –