将csv上载到R中的api

将csv上载到R中的api,r,api,csv,R,Api,Csv,为了调用census geocoder api,我使用了“批量地理编码”标题下的文档中的提示。它们为批处理调用api提供的shell命令是 curl --form addressFile=@address.csv --form benchmark=4 http://geocoding.geo.census.gov/geocoder/locations/addressbatch --output geocoderesult.csv 其中address.csv是要上载的文件 这很好用。但是,我想创

为了调用census geocoder api,我使用了“批量地理编码”标题下的文档中的提示。它们为批处理调用api提供的shell命令是

curl --form addressFile=@address.csv --form benchmark=4 http://geocoding.geo.census.gov/geocoder/locations/addressbatch --output geocoderesult.csv
其中address.csv是要上载的文件

这很好用。但是,我想创建一个R脚本,使整个过程自动化

在R中执行上述命令的等效方法是什么?RCurl包中的postForm()可以实现这一点吗



顺便说一句,上传的csv文件的每一行(“address.csv”)的格式必须是

Unique ID, Street address, City, State, ZIP
因此,例如,它可能只包含苹果和类似Facebook的地址

1, 1 Infinite Loop, Cupertino, CA, 95014
2, 1 Hacker Way, Menlo Park, CA, 94025

谢谢

使用
httr
库,可以进行直接翻译

library('httr')

apiurl <- "http://geocoding.geo.census.gov/geocoder/locations/addressbatch"

addresses <- "1, 1 Infinite Loop, Cupertino, CA, 95014
2, 1 Hacker Way, Menlo Park, CA, 94025"

addresseFile <- "addresses.csv"
writeLines(addresses , addresseFile )

resp<-POST(apiurl, body=list(addressFile=upload_file(addresseFile), benchmark=4), 
     encode="multipart")
content(resp)
library('httr')
阿皮乌尔
resp <- POST(apiurl, body=list(
    addressFile = RCurl::fileUpload(
      filename = "data.csv", 
      contents = addresses, 
      contentType = "application/octet-stream"
    ), 
    benchmark=4
  ), 
  encode="multipart"
)