You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用lapply或purrr::map批量调用tidygeocoder的reverse_geo()函数

错误原因

你调用reverse_geo()时未对非前两位参数显式命名,导致参数位置匹配错误。reverse_geo()的第三个参数是limit,你直接传入的"osm"被识别为limit的取值,不符合数值要求,因此触发报错。
此外不建议用list作为变量名,这是R内置基础函数名,容易引发后续冲突,建议替换为df_list这类自定义名称。

修正方案

方法1:使用base R的lapply

df1 <- data.frame(random_lats,random_longs)
df2 <- data.frame(random_lats,random_longs) 
df_list <- list(df1, df2)

data_frame_list = lapply(df_list, function(x) {
  reverse_geo(
    lat = x[["random_lats"]], 
    long = x[["random_longs"]], 
    method = "osm", 
    full_results = TRUE,
    custom_query = list(extratags = 1, addressdetails = 1, namedetails = 1)
  )
})

方法2:使用purrr::map

如果需要将所有返回结果直接合并为单个数据框,可以用map_dfr替代map:

library(purrr)

# 输出为列表,每个元素对应一个输入数据框的逆地理编码结果
data_frame_list <- map(df_list, ~reverse_geo(
  lat = .x[["random_lats"]],
  long = .x[["random_longs"]],
  method = "osm",
  full_results = TRUE,
  custom_query = list(extratags = 1, addressdetails = 1, namedetails = 1)
))

# 输出为合并后的单个数据框
merged_df <- map_dfr(df_list, ~reverse_geo(
  lat = .x[["random_lats"]],
  long = .x[["random_longs"]],
  method = "osm",
  full_results = TRUE,
  custom_query = list(extratags = 1, addressdetails = 1, namedetails = 1)
))

内容的提问来源于stack exchange,提问作者user5831311

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:15:05