do.call returns 参数列表中的单个值 - 需要多个值

do.call returns single value from list of arguments - expecting multiple values

我有一个名为 "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.callMapdo.call 用于向函数提供其存储在列表中的参数。 Map 用于在参数列表中逐个元素地并行调用一个函数。

以下是适合您的内容:

Map(block,latty=latlngVA$LATITUDE, longy=latlngVA$LONGITUDE)