从 Google Trends Interest 按城市获取州名

Obtain State Name from Google Trends Interest by City

假设您查询以下内容:

gtrends("google", geo="US")$interest_by_city

这个 returns 在美国各个城市搜索了 "google" 字词的次数。但是,它没有提供有关每个城市属于哪个州的任何信息。

我尝试将此数据集与其他几个数据集(包括城市和州名)合并。鉴于同一个城市名称可能出现在许多州,我不清楚如何确定 Google Trends 为其提供数据的城市。

我在下面提供了更详细的 MWE。

library(gtrendsR)
library(USAboundariesData) 

data1 <- gtrends("google", geo= "US")$interest_by_city
data1$city <- data1$location
data2 <- us_cities(map_date = NULL)
data3 <- merge(data1, data2, by="city")

这会产生以下问题:

    city        state 
  Alexandria   Louisiana      
  Alexandria   Indiana       
  Alexandria   Kentucky        
  Alexandria   Virginia       
  Alexandria   Minnesota      

很难知道哪些 "Alexandria" Google Trends 提供了数据。

如能提供有关如何识别每个城市状态的任何提示,我们将不胜感激。

解决这个问题的一种方法是收集每个州的城市,然后只 rbind 各自的数据框。你可以先像这样制作一个状态代码向量

states <- paste0("US-",state.abb)

然后我只是使用 purrr 作为它的映射和减少功能来创建一个框架

    data <- purrr::reduce(purrr::map(states, function(x){
      cities = gtrends("google", geo = x)$interest_by_city
    }),
    rbind)