2015-02-11 5 views
0

Я прочитал много файлов в R из источников в молнии. Я пытаюсь использовать функцию R unz для чтения из zipped-файлов, потому что, в отличие от unzip, он не оставляет никаких распакованных файлов на моем жестком диске.R read.dta и unz не работает

Однако, это не похоже на работу для *.dta файлов на молнии (Stata):

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+ МБ), но я не нашел лучший рабочий пример.

Код генерирует ошибку при чтении pwt_unz, [редактировать: но не при чтении pwt_unzip]. В чем проблема? Вероятно, это имеет какое-то отношение к возвращаемому значению unz, не совместимому с входом для read.dta?

+0

Unz работает только в двоичном режиме. Является ли dta-файл двоичным? – Leehbi

ответ

0

Я думаю, что вам нужно read.dta

Посмотрите здесь:

http://stat.ethz.ch/R-manual/R-devel/library/foreign/html/read.dta.html

+0

Да, это то, что я использую в качестве обертки вокруг unz или unzip, соответственно. – roming

+0

Знаете ли вы, какой тип сжатия обернут dta? Это стандартный zip? – Leehbi

+0

Извините, но я этого не знаю. Все файлы, которые я пробовал до сих пор, из одного источника (Groningen growth and Development Center), действительно, возможно, это проблема, характерная для их zipped dta. Чтобы проверить, я пробовал один из них [ссылка] (http://nces.ed.gov/surveys/ssocs/data/zip/ssocs06_stata.zip), но столкнулся с той же проблемой. Существуют ли разные виды уплотнений на молнии? Если да, то как я могу узнать, какой из них присутствует в файле? – roming