在R中提取bz2文件

Pra*_*bhu 32 r bzip2

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

我听说某个地方可以直接读取bzfiles而不解压缩.我怎样才能做到这一点?

Amr*_*tha 33

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

  1. read.csv()command:使用此命令可以直接提供包含csv文件的压缩文件名.

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

  2. read.table()command:该命令是命令的通用版本read.csv().您可以设置分隔符和其他read.csv()自动设置的选项.您无需单独解压缩文件.此命令会自动为您完成.

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


Kom*_*thi 23

像这样:

readcsvbz2file <- read.csv(bzfile("file.csv.bz2"))
Run Code Online (Sandbox Code Playgroud)

  • `bzfile()`不是必需的,`read.csv()`可以自动处理压缩文件.所以它只是`read.csv("file.csv.bz2")`.[这是一个例子](http://rpubs.com/Noseshine/77486)(第一部分"加载数据"). (12认同)

use*_*065 7

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

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

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


DrK*_*liN 5

基本上,您需要键入:

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

dataset <- read.csv("dataset.csv")
Run Code Online (Sandbox Code Playgroud)

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