2014-09-20 4 views
26

У меня есть группа из .csv.bz2 файлов, которые мне нужно скачать, извлечь и прочитать в R. Я загрузил файл и хочу извлечь его в текущий рабочий каталог, а затем прочитал его. unz(filename,filename.csv), но он не работает. Как я могу это сделать?Извлечение файла bz2 в R

Я слышал где-то, что bzfiles можно читать напрямую без распаковки. Как я могу это сделать?

ответ

23

Вы можете использовать любой из эти две команды:

  1. read.csv() команда: с помощью этой команды вы можете напрямую предоставить сжатое имя файла, содержащее файл csv.

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

  2. read.table() Команда: Эта команда является общей версией read.csv() команды. Вы можете установить параметры разделителей и другие параметры, которые автоматически устанавливает read.csv(). Вам не нужно распаковывать файл отдельно. Эта команда делает это автоматически для вас.

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

3

В соответствии с описанием read.table, можно непосредственно ознакомиться с a compressed file.

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

Как это:

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

'bzfile()' не требуется, 'read.csv()' может обрабатывать сжатые файлы автоматически. Так что это просто 'read.csv (" file.csv.bz2 ")'. [Вот пример] (http://rpubs.com/Noseshine/77486) (первый раздел «Загрузка данных»). –

3

В принципе, вам нужно набрать:

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

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

Смотрите документацию здесь: bunzip2 {R.utils}.