Prabhu
Prabhu

Reputation: 5466

Extract bz2 file in R

I have bunch of .csv.bz2 files, which i have to download, extract, and read in R. I downloaded the file and want to extract it to current working directory, then read it. unz(filename,filename.csv) but it does not seem to work. How can I do that?

I heard somewhere that bzfiles can be read directly without decompressing. How can I do that?

Upvotes: 39

Views: 40862

Answers (5)

user2161065
user2161065

Reputation: 1856

You can make use of the super fast fread which has built-in support for bz2-compressed files

require(data.table)
fread("file.csv.bz2")

Upvotes: 11

DrKaoliN
DrKaoliN

Reputation: 1402

Basically, you need to type:

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

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

See documentation here: bunzip2 {R.utils}.

Upvotes: 8

Amrit Shrestha
Amrit Shrestha

Reputation: 1660

You can use any of these two commands:

  1. read.csv()command: with this command you can directly supply your compressed filename containing csv file.

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

  2. read.table() command: This command is generic version of read.csv() command. You can set delimiters and others options that read.csv() automatically sets. You don't need to uncompress the file separately. This command does it automatically for you.

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

Upvotes: 40

Miha Trošt
Miha Trošt

Reputation: 2022

According to read.table description, one can read a compressed file directly.

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

Upvotes: 4

Komal Rathi
Komal Rathi

Reputation: 4274

Like this:

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

Upvotes: 27

Related Questions