地理编码功能不起作用,我不断收到相同的错误消息

问题描述 投票:0回答:1

亚历克斯%>% 地理编码(地址='地址',方法=“谷歌”,纬度=纬度,长=经度)

地理编码错误(., 地址 = "地址", 方法 = "google", lat = 纬度, : is.character(location) 不正确

我正在尝试获取 +17k 地址的坐标。地理编码功能以前工作得很好,但我意识到我没有输入完整的地址,我只是输入了没有城市或州的街道地址,并得到了截然不同的坐标。

为了重现性,我有一些随机示例数据可供测试,并且我在两个不同的数据集中得到了它。其中一个数据集的地址在一列中完整,而另一个数据集的地址则分为多列,分别包含城市、州和邮政编码。我已经尝试了这两个数据集,它们都给了我完全相同的错误代码。

该数据集称为 Alex。

创建日期 身份证号码 地址
2019-02-22 120 肯塔基州亚历山大·莫尔黑德。 40351
2020-03-05 121 肯塔基州亚历山大市低语伍兹巷 6 号。 41001
2020-07-23 122 6651 第一街亚历山大,路易斯安那州。 71303
2021-12-30 123 830 亚历山大派克,肯塔基州托马斯堡。 41675
2023-01-18 124 11809 Skyview DRIVE 亚历山大,肯塔基州。 41001

图书馆(tibble) 图书馆(dplyr) 库(tidygeocoder) 图书馆(ggmpap)

这些是我加载的包,Alex 表中的所有列都是字符类型,而不是数字,表本身是:

班级(亚历克斯)

[1]“tbl_df”“tbl”“data.frame”

我注册了 Google API 密钥,但没有任何效果。任何帮助或见解将不胜感激。

rstudio geocoding ggmap google-geocoder
1个回答
0
投票

这是使用 DeGAUSS

的解决方案

您需要安装 docker(只需按照适用于您操作系统的 https://www.docker.com/products/docker-desktop/ 操作即可)。

# this is easier for everyone to copy paste your example
alex <- data.frame(
  ID = c(120:124),
  Address = c(
    "ALEXANDRIA DRIVE MOREHEAD, KY. 40351",
    "WHISPERING WOODS LANE ALEXANDRIA, KY. 41001",
    "FIRST STREET ALEXANDRIA, LA. 71303",
    "ALEXANDRIA PIKE FORT THOMAS, KY. 41675",
    "KYVIEW DRIVE ALEXANDRIA, KY. 41001"
  )
)

# I did not include the date, degauss prefer that you only use "id"
# and ""address"
 
names(alex) <- tolower(names(alex)) #  degauss is picky with address column name

# degauss take a csv as an argument
write.csv(alex, "alex.csv", row.names = FALSE)

# calling degauss container from R, system2 could have been nicer
system("docker run --rm -v $PWD:/tmp ghcr.io/degauss-org/geocoder:3.3.0 alex.csv")

# see the results
read.csv("alex_geocoder_3.3.0_score_threshold_0.5.csv")

其中一个地址不准确(第一个)

© www.soinside.com 2019 - 2024. All rights reserved.