2012-11-30 19 views
7

Próbuję pobrać plik zip z adresem URL:Błąd w file.download podczas pobierania niestandardowy plik

url1 <- http://www.clinicaltrials.gov/ct2/results?cond=%22acne%22&studyxml=true 

Oto mój kod:

tempZip <- tempfile() 
download.file(url1, tempZip) 

I tu pojawia się błąd:

Warning message: 
In download.file(url1, tempZip) : 
    downloaded length 817445 != reported length 200 

Wszelkie pomysły?

EDYCJA: OK, po zobaczeniu odpowiedzi agstudy poniżej, stwierdziłem, że plik rzeczywiście był pobierany (również wygląda na prawidłowy rozmiar pliku). Teraz problem polega na tym, że próbuję rozpakować plik - dni, kiedy plik jest uszkodzony.

Maciej, Zgadzam się, że lepiej będzie użyć linka z rozszerzeniem .zip, jednak nie ma sposobu, aby to uzyskać z tej strony.

Odpowiedz

7

OK, zorientowałem się, co było nie tak. Ponieważ adres URL tego pliku nie ma na końcu ".zip", funkcja download.file nie używa pliku binarnego do pobrania. Ten kod rozwiązuje problem:

url1 <- http://www.clinicaltrials.gov/ct2/results?cond=%22acne%22&studyxml=true 
tempZip <- tempfile() 
download.file(url1, tempZip, mode="wb") 

Jeśli nie określisz argumentu trybu, pobrany plik zip będzie uszkodzony.

1

Nie masz bezpośredniego linku do pliku. R spróbuj pobrać plik strony nie. Użyj linku, który kończy się na ".zip".

Może warto użyć pakietu XML lub RCurl do zeskanowania linków do zestawów danych z tej strony.

Powiązane problemy