Estoy buscando descargar un gzip csv y cargarlo como un objeto R sin guardarlo primero en el disco. Puedo hacer esto con archivos comprimidos pero parece que no funciona con gzfile
o gzcon
.Leer gzipped csv directamente desde una url en R
Ejemplo:
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)
}
que descarga un archivo (pequeño) gz comprimido que contiene Wikipedia article feedback data (no es importante, pero sólo para indicar que no es gigante o nefasto).
El código que tengo funciona bien pero siento que me falta algo muy obvio al recurrir a la creación y destrucción de un archivo temporal.
Sí, estoy casi 70% seguro de que usted o JD han respondido algo similar. De hecho, obtuve la idea 'tempfile' de una respuesta anterior suya con respecto a las carpetas comprimidas. Pero no puedo encontrar algo con/gzfile/gzcon, que parecen comportarse de manera diferente a otras funciones relacionadas con el archivo o la conexión. –
¿Puedes destilar esto? De hecho, utilicé el mismo truco de "transmisión" de un archivo comprimido gzip a principios de la década de 1990 cuando el espacio en el disco era más escaso y mantuve gzip'ed los resultados de la simulación. Por lo tanto, la capacidad de obtener de forma transparente la funcionalidad "gunzip" en una biblioteca C fread es bastante antigua y estándar. –
Voy a marcar esto como la respuesta por ahora. Podría volver y darme una mejor respuesta después de perder el tiempo con w/gzcon (que parece ser el ángulo más prometedor). –