【问题标题】:Get coordinates of country location using lookup_coords() function from rtweet package使用 rtweet 包中的 lookup_coords() 函数获取国家/地区位置的坐标
【发布时间】:2018-12-09 01:28:25
【问题描述】:

我已经安装了 rtweet,当我想从美国以外的特定国家/地区收集推文时,该软件包不会收集任何数据。我已经安装了 Geocoding APIMaps JavaScript APIGeolocation API,它们使用来自 Google 的相同 API 密钥作为 R 中的环境变量。以下是我遵循的步骤:

生成一个 google maps_token

google_maps_token<-"my key XXXXXXXXXX"

主目录路径

home_directory <- path.expand("~/")

与令牌名称结合

file_name <- file.path(home_directory, "google_maps_token.rds")

将令牌保存到主目录

saveRDS(google_maps_token, file = file_name)

创建环境变量

cat(paste0("GOOGLE_MAPS_PAT=", file_name),
file = file.path(home_directory, ".Renviron"),
append = TRUE)

可视化 API 关键环境变量

usethis::edit_r_environ() 

TWITTER_PAT=/Users/xxxxxx/.rtweet_token1.rds GOOGLE_MAPS_PAT=/Users/xxxxxx//google_maps_token.rds

保存 google api 密钥后,我重新启动 RStudio 以开始收集推文,这会发生:

加载 rtweet 库

library(rtweet)

收集来自美国的推文

tweets_USA <- search_tweets("#lang:en",
                        geocode = lookup_coords("USA",apikey = "google_maps_token"),
                n=10, include_rts = FALSE)

正在搜索推文... 推文收集完毕!

10 tweets from USA

从墨西哥收集推文

tweets_Mexico <- search_tweets("#lang:es",
                           geocode = lookup_coords("mexico",apikey = "google_maps_token"),
                n=10, include_rts = FALSE)

正在搜索推文... 推文收集完毕!

no data collected from Mexico

此外,当我将 rtweet 包中的 lookup_coords() 函数与“usa”一起使用时,它可以工作

从美国获取坐标

usa <- lookup_coords("usa")

coordinates from USA

但是当我尝试按照帮助部分中的示例使用另一个地址时,它不会收集任何数据

从巴西获取坐标

bz <- lookup_coords("brazil")

no coordinates from Brazil

但是当我直接在函数中编写 API 密钥时,它可以工作。 出于安全原因,我改为写“XXXXXXXXXX”

mexico_coord <- lookup_coords(address = "mexico",
                          components = "country:Mexico",
                          apikey = "XXXXXXXXXXXX") 

mexico coordinates

我做错了什么还是需要将 API 密钥安装在另一个目录中?我不得不说我的工作目录(我保存项目和脚本的地方)与运行 path.expand("~/") 后出现的主目录不同

【问题讨论】:

    标签: r twitter google-geocoding-api rtweet


    【解决方案1】:

    我找到了让 lookup_coords() 函数正常工作的解决方案。 我只需要使用 Sys.getenv() 函数来调用 google_maps_token.rds

    使用来自墨西哥的坐标生成一个变量

    mexico_coord <- lookup_coords(address = "mexico",
                              components = "country:Mexico",
                              apikey=Sys.getenv("google_maps_token.rds"))
    

    之后我可以使用 search_tweet() 函数收集来自墨西哥的 10 条西班牙语推文

    tuits_Mex_esp_10 <- search_tweets("lang:es",
                              geocode = mexico_coord, n = 10)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 2011-03-30
      相关资源
      最近更新 更多