我有一个很大的tar.gz
文件(> 2GB),我想从中读取R 中的特定.dat
文件而不解压缩原始tar.gz
文件。
我尝试按照this post进行操作,如下所示:
p35_data_path <- "~/P35_fullset.tar.gz"
file.exists(p35_data_path) #TRUE
# Try to readin foldera/class1/mydata.dat from the zip file
mydata <- read.table(unz(p35_data_path
, "foldera/class1/mydata.dat"))
当我运行上述内容时,我收到read.table
错误
Error in open.connection(file, "rt") : cannot open the connection
In addition: Warning message:
In open.connection(file, "rt") :
cannot open zip file '~/P35_fullset.tar.gz'
"~/P35_fullset.tar.gz"
文件存在。其中的特定文件肯定存在foldera/class1/mydata.dat
。
有人可以协助纠正这个问题吗?
答案 0 :(得分:0)
**da<-untar(Tarfile, files = NULL, list = TRUE, exdir = ".",compressed = "gzip")**
###这是用于列出TAR下的文件
**da<-as.data.table(da)**
###将列出的文件另存为数据表
**g<-c(da$Name)**
###然后列出名称
**untar(Tarfile, files = g, list = FALSE, exdir = "exportRQA",compressed = "gzip")**
###这最终是用于提取特定文件的命令。
答案 1 :(得分:0)
您应该能够使用基本R的untar()
来解压缩归档文件:
p35_data_path <- "~/P35_fullset.tar.gz"
file.exists(p35_data_path) #TRUE
# Try to readin foldera/class1/mydata.dat from the .tar.gz file
untar(p35_data_path, "foldera/class1/mydata.dat") # this extracts the file from archive
mydata <- read.table("foldera/class1/mydata.dat") # so you can read it
文件被提取到文件夹内,但是,您可以指定将文件提取到何处。有关更多信息,请参见documentation。