2016-02-07 2 views
0

J'essaye de télécharger des données CSV à partir du Web en utilisant postForm, cependant, le fichier téléchargé semble être un document html au lieu d'un fichier csv. Ce sont mon code:Téléchargement du fichier csv à l'aide de la fonction postForm dans R

############################ 
library(RCurl) 

url <- "https://research.stlouisfed.org/fred2/series/MKTGDPSAA646NWDB/downloaddata" 
params <- list(
    "native_frequency" = "Annual", units = "lin", 
    "frquency" = "Annual", "aggregation" = "Average", "obs_start_date" = "1968-01-01", 
    "obs_end_date" = "2014-01-01", "file_format" = "csv", "download_data_2" = "", format="csv") 

result <- postForm(url, .params = params) 
writeBin(as.vector(result),"doc2.txt") 
+0

Je vois les fautes d'orthographe et un manque de concordance des noms de script avec vos noms. Passez plus de temps à revoir le code sur la page. –

+0

J'ai utilisé votre code recommandé mais j'ai toujours le même résultat –

+0

Je pense que le problème a quelque chose à voir avec l'encodage –

Répondre

0

Une légère approche plus moderne consiste à utiliser le package httr:

library(httr) 

res <- POST("https://research.stlouisfed.org/", 
      path="fred2/series/MKTGDPSAA646NWDB/downloaddata", 
      body=list(`form[native_frequency]` = "Annual", 
         `form[units]` = "lin", 
         `form[frequency]` = "Annual", 
         `form[aggregation]` = "Average", 
         `form[obs_start_date]` = "1968-01-01", 
         `form[obs_end_date]` = "2014-01-01", 
         `form[file_format]` = "csv", 
         `form[download_data_2]` = ""), 
      write_disk("doc2.txt")) 

warn_for_status(res) 

##   DATE  VALUE 
## 1 1968-01-01 4187777711 
## 2 1969-01-01 4485777644 
## 3 1970-01-01 5377333333 
## 4 1971-01-01 7184853037 
## 5 1972-01-01 9664157065 
## 6 1973-01-01 14947391339 
+0

Merci beaucoup! –