2

假设您查询以下内容:

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

这将返回在美国各个城市中对“google”一词的搜索次数。但是,它没有提供有关每个城市属于哪个州的任何信息。

我尝试将这个数据集与其他几个数据集合并,包括城市和州名。鉴于许多州都可能出现相同的城市名称,我不清楚如何确定 Google 趋势提供的数据是哪个城市。

我在下面提供了更详细的 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      

很难知道 Google 趋势为哪个“亚历山大”提供了数据。

任何有关如何识别每个城市状态的提示都将不胜感激。

4

1 回答 1

1

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

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

然后我只使用purrr它的 map 和 reduce 功能来创建一个单一的框架

    data <- purrr::reduce(purrr::map(states, function(x){
      cities = gtrends("google", geo = x)$interest_by_city
    }),
    rbind)
于 2018-06-06T15:41:16.757 回答