Reputation: 5466
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
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
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
Reputation: 1660
You can use any of these two commands:
read.csv()
command: with this command you can directly supply your compressed filename containing csv file.
read.csv("file.csv.bz2")
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
Reputation: 2022
According to read.table description, one can read a compressed file directly.
read.table("file.csv.bz2")
Upvotes: 4
Reputation: 4274
Like this:
readcsvbz2file <- read.csv(bzfile("file.csv.bz2"))
Upvotes: 27