我有一个非常大的 zip 文件,我试图将它读入 R 而不像这样解压缩:

temp <- tempfile("Sales", fileext=c("zip"))
data <- read.table(unz(temp, "Sales.dat"), nrows=10, header=T, quote="\"", sep=",")

Error in open.connection(file, "rt") : cannot open the connection
In addition: Warning message:
In open.connection(file, "rt") :
  cannot open zip file 'C:\Users\xxx\AppData\Local\Temp\RtmpyAM9jH\Sales13041760345azip'

#1楼 票数:53 已采纳

如果您的 zip 文件名为Sales.zip并且只包含一个名为Sales.dat的文件,我认为您可以简单地执行以下操作(假设该文件在您的工作目录中):

data <- read.table(unz("Sales.zip", "Sales.dat"), nrows=10, header=T, quote="\"", sep=",")

#2楼 票数:21

无需使用 unz,因为现在 read.table 可以直接处理压缩文件:

data <- read.table("Sales.zip", nrows=10, header=T, quote="\"", sep=",")

看到这个帖子

#3楼 票数:17

如果文件后缀表明文件的性质, readr包的方法也支持压缩文件,即以 .gz、.bz2、.xz 或 .zip 结尾的文件将被自动解压缩。

require(readr)
myData <- read_csv("foo.txt.gz")

#4楼 票数:4

如果文件是 sales.csv,这应该可以正常工作。

data <- readr::read_csv(unzip("Sales.zip", "Sales.csv"))

在不提取文件的情况下检查文件名。 这有效

unzip("sales.zip", list = TRUE)

#5楼 票数:2

如果您的系统上安装了 zcat(Linux、macos 和 cygwin 就是这种情况),您还可以使用:

zipfile<-"test.zip"
myData <- read.delim(pipe(paste("zcat", zipfile)))

此解决方案还具有不创建临时文件的优点。

#6楼 票数:2

在这个表达中你失去了一个点

temp <- tempfile("Sales", fileext=c("zip"))

它应该是:

temp <- tempfile("Sales", fileext=c(".zip"))

#7楼 票数:1

gzfile 函数连同 read_csv 和 read.table 可以读取压缩文件。

library(readr)
df = read_csv(gzfile("file.csv.gz"))

library(data.table)
df = read.table(gzfile("file.csv.gz"))

即使不使用 gzfile 函数,readr 包中的 read_csv 也可以读取压缩文件。

library(readr)  
df = read_csv("file.csv.gz")

推荐使用 read_csv 因为它比 read.table 快

  ask by laiboonh translate from so

未解决问题?本站智能推荐:

2回复

R在不解压缩的情况下读取zip数据文件(信息丢失)

从这个SO问题的答案之一中,我得到了以下内容: 但这使我由于某种原因丢失了数据。 我的第二列是时间列,其格式为:9:30:00.244271971,此代码将其转换为:09:30:00,因此丢失了大量信息。 我怎样才能解决这个问题? 有没有办法避免丢失此信息?
2回复

在zip文件中读取RDS文件而不解压缩到磁盘

有没有理由我无法直接从zip文件中读取RDS文件,而不必先将其解压缩到磁盘上的临时文件? 假设这是zip文件: 对于csv文件,我可以直接读取它: 但是,我不明白为什么我不能直接使用unz()与readRDS() : 这给了我错误: 我也想知道为什么会这样。 我知道我可以做
1回复

使用R读取压缩文件夹中的csv文件而不解压缩

我有一个名为master.zip的压缩文件,其中包含2个CSV文件: file1.csv和file2.csv 我只想读取file1.csv ,类似于: read_csv('master/file1.csv') ,但不必解压缩master.zip 。 如何使用R做到这一点?
3回复

使用R下载压缩数据文件,解压缩并导入.csv

我正在尝试使用R从网页下载并提取.csv文件。 此问题与使用R下载压缩数据文件,提取和导入数据重复。 我无法使解决方案工作,但可能是由于我正在使用的网址。 我试图从http://data.worldbank.org/country/united-kingdom下载.csv文件(在下载
1回复

在R中解压缩时如何提取zip文件

我正在尝试解压缩下载中的文件,我加载了 swirl 库,需要执行以下步骤: install_course_zip("YOUR_PATH/14_740x_Intro_to_R.zip",multi=FALSE)其中 YOUR_PATH 是保存在步骤 1 中下载的 zip 文件的文件夹路径。这通常如下
8回复

r函数解压缩错误1​​从zip文件中提取

环境:Windows 7 操作系统 RStudio 版本 0.99.491 我已经通过 Coursera 数据科学课程在 R 中编程了大约 4 个月,但我从来没有成功地使用过解压缩功能。 我在论坛上看了几个小时,寻找潜在的解决方案、语法问题、未定义的参数等,但无济于事。 我最终手动解压缩内容并继续分
1回复

R:解压缩大型压缩的.csv会产生“zip文件已损坏”警告

我正在从联合国粮农组织下载一个78MB的zip文件,其中包含一个2.66GB的csv。 我可以使用winzip从文件夹中解压缩下载的文件,但是无法使用R中的unzip()解压缩文件: 警告-78MB下载! 这将导致警告,并且无法解压缩文件: 警告信息 在unzip(path
1回复

使用R下载并解压缩包含文件夹的zip文件

在Rstudio中,我写道: 但是它得到了错误: 其原因是, metastock_all_data.txt是一个文件夹,名为在datax123456的拉链。