【发布时间】:2018-08-13 14:49:44
【问题描述】:
我有一个名为“block”的函数,它使用 CURL 包从 Web API 检索信息。该函数接受两个参数(“latty”和“longy”),我想使用 do.call 为参数传递值列表。
但是,它似乎只传递了第一对值,并没有传递到下一对。
这是我的代码:
block <- function(latty, longy){
Sys.sleep(0.25)
url <- paste0("https://geo.fcc.gov/api/census/block/find?latitude=",
latty, "&longitude=", longy)
response <- curl(url)
data <- readLines(response, warn=FALSE)
blockID <- substr(sub(".*Block FIPS=\\\"","",data), 0, 15)
return(blockID)
}
result <- do.call(block, list(latty=latlngVA$LATITUDE, longy=latlngVA$LONGITUDE))
谢谢!
【问题讨论】:
-
您可能会将
do.call与Map混淆 -
Map(block,latty=latlngVA$LATITUDE, longy=latlngVA$LONGITUDE)或mapply(block,latty=latlngVA$LATITUDE, longy=latlngVA$LONGITUDE)会给你你想要的吗? -
是的!非常感谢,这非常有用。