【发布时间】:2014-11-14 22:12:51
【问题描述】:
我有一堆 .csv.bz2 文件,我必须在 R 中下载、提取和阅读这些文件。
我下载了文件并想将其解压缩到当前工作目录,然后阅读它。
unz(filename,filename.csv) 但它似乎不起作用。我该怎么做?
听说bzfiles不用解压就可以直接读取。我该怎么做?
【问题讨论】:
我有一堆 .csv.bz2 文件,我必须在 R 中下载、提取和阅读这些文件。
我下载了文件并想将其解压缩到当前工作目录,然后阅读它。
unz(filename,filename.csv) 但它似乎不起作用。我该怎么做?
听说bzfiles不用解压就可以直接读取。我该怎么做?
【问题讨论】:
根据read.table的描述,可以直接读取a compressed file。
read.table("file.csv.bz2")
【讨论】:
像这样:
readcsvbz2file <- read.csv(bzfile("file.csv.bz2"))
【讨论】:
bzfile()不是必须的,read.csv()可以自动处理压缩文件。所以它只是read.csv("file.csv.bz2")。 Here is an example(第一部分“加载数据”)。
您可以使用内置支持 bz2 压缩文件的超快fread
require(data.table)
fread("file.csv.bz2")
【讨论】:
您可以使用以下两个命令中的任何一个:
read.csv()command:使用此命令,您可以直接提供包含 csv 文件的压缩文件名。
read.csv("file.csv.bz2")
read.table() 命令:此命令是read.csv() 命令的通用版本。您可以设置分隔符和read.csv() 自动设置的其他选项。您不需要单独解压缩文件。此命令会自动为您执行。
read.csv("file.csv.bz2", header = TRUE, sep = ",", quote = "\"",...)
【讨论】:
基本上,你需要输入:
library(R.utils)
bunzip2("dataset.csv.bz2", "dataset.csv", remove = FALSE, skip = TRUE)
dataset <- read.csv("dataset.csv")
在此处查看文档:bunzip2 {R.utils}。
【讨论】: