2015-02-11 126 views
0

我从压缩的源文件中读取大量文件到R中。我尝试使用R函数unz来读取压缩文件,因为与解压缩不同,它不会在我的硬盘上留下任何解压缩文件。R read.dta和unz无法正常工作

然而,这似乎并不为拉链*.dta(塔塔)文件的工作:

library(foreign) 

temp <- tempfile() 
download.file("http://databank.worldbank.org/data/download/WDI_csv.zip", temp) 
wdi_unz <- read.csv(unz(temp, "WDI_Data.csv")) 
unlink(temp) 

temp <- tempfile() 
download.file("http://www.rug.nl/research/ggdc/data/pwt/v80/pwt80.zip",temp) 
pwt_unzip <- read.dta(unzip(temp, "pwt80.dta")) 
pwt_unz <- read.dta(unz(temp, "pwt80.dta")) 
unlink(temp) 

对不起,使用相当大的世界发展指标数据库(它的40+ MB),但我没有发现任何更好的工作示例。

该代码在读取pwt_unz时会产生错误,[编辑:但不是在读取pwt_unzip时]。那里有什么问题?可能它与unz的返回值与read.dta的输入不兼容有关系吗?

+0

UNZ只能在二进制模式。 dta文件是二进制文件吗? – Leehbi 2015-02-11 15:11:21

回答

0
+0

是的,这就是我正在用unz或unzip作为包装的分别。 – roming 2015-02-11 13:58:38

+0

你知道dta被压缩的压缩类型吗?它是标准的拉链吗? – Leehbi 2015-02-11 15:05:34

+0

对不起,但我不知道。到目前为止,我尝试过的所有文件都来自同一个源文件(格罗宁根增长和开发中心),所以确实可能是这是针对其压缩的dta的特定问题。为了检查,我尝试了另一个[链接](http://nces.ed.gov/surveys/ssocs/data/zip/ssocs06_stata.zip),但遇到了同样的问题。是否有不同种类的拉链压缩?如果是这样,我怎么才能找出手头文件中存在哪一个? – roming 2015-02-12 07:43:32