在R中提取bz2文件

时间:2014-09-20 12:31:36

标签: r bzip2

我有一堆.csv.bz2个文件,我必须在R中下载,提取和读取。 我下载了该文件并希望将其解压缩到当前工作目录,然后阅读它。 unz(filename,filename.csv)但它似乎不起作用。我怎么能这样做?

我听说某个地方可以直接读取bzfiles而不解压缩。我怎么能这样做?

5 个答案:

答案 0 :(得分:32)

您可以使用以下两个命令中的任何一个:

  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 = "\"",...)

答案 1 :(得分:23)

像这样:

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

答案 2 :(得分:7)

Linux 系统上,您可以使用超快fread

require(data.table)
fread(sprintf("bzcat %s | tr -d '\\000'", "file.csv.bz2"))

参考:https://gist.github.com/wush978/93c0f96b68f529678e2d

答案 3 :(得分:5)

基本上,您需要输入:

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

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

请参阅此处的文档:bunzip2 {R.utils}

答案 4 :(得分:4)

根据read.table说明,可以直接阅读a compressed file

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