2014-09-20 17 views
26

Ho un mucchio di file .csv.bz2, che devo scaricare, estrarre e leggere in R. Ho scaricato il file e voglio estrarlo nella directory di lavoro corrente, quindi leggerlo. unz(filename,filename.csv) ma non sembra funzionare. Come lo posso fare?Estrai file bz2 in R

Ho sentito da qualche parte che i bzfile possono essere letti direttamente senza decomprimere. Come lo posso fare?

risposta

23

è possibile utilizzare qualsiasi di questi due comandi:

  1. read.csv() comando: con questo comando è possibile fornire direttamente il nome file compresso contenente il file csv.

    read.csv("file.csv.bz2")

  2. read.table() comando: Questo comando è la versione generica di read.csv() comando. È possibile impostare delimitatori e altre opzioni impostate automaticamente da read.csv(). Non è necessario decomprimere il file separatamente. Questo comando lo fa automaticamente per te.

    read.csv("file.csv.bz2", header = TRUE, sep = ",", quote = "\"",...)

23

Ti piace questa:

readcsvbz2file <- read.csv(bzfile("file.csv.bz2")) 
+11

'bzfile()' non è necessario, 'read.csv()' può gestire automaticamente i file compressi. Quindi è solo 'read.csv (" file.csv.bz2 ")'. [Ecco un esempio] (http://rpubs.com/Noseshine/77486) (prima sezione "Caricamento dei dati"). –

3

In sostanza, è necessario digitare:

library(R.utils) 
bunzip2("dataset.csv.bz2", "dataset.csv", remove = FALSE, skip = TRUE) 

dataset <- read.csv("dataset.csv") 

vedere la documentazione qui: bunzip2 {R.utils}.