【问题标题】:Obtain State Name from Google Trends Interest by City从 Google Trends Interest by City 中获取州名
【发布时间】:2023-03-21 20:00:02
【问题描述】:

假设您查询以下内容:

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 趋势为哪个“亚历山大”提供了数据。

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

【问题讨论】:

  • 我不知道gtrendsr 的来龙去脉,但我很好奇。如果您有来自gtrends(...) 的对象gg$interest_by_dma 会为您提供带有州名的都会区。你也可以在你的geo中给出一个状态,比如geo = "US-CT";在这种情况下,g$interest_by_city 仅显示康涅狄格州的城市。但如果你想要遍布美国的城市,那可能会变得笨拙。
  • 对于任何尝试运行代码的人,根据github README,CRAN 版本不再工作,因此建议使用开发版本:devtools::install_github("PMassicotte/gtrendsR)
  • @zack 确实,我应该提到这一点。
  • @camille 我知道我可以通过州来解决问题,但我需要在美国各地而不是仅仅在一个州这样做(也在每个州内查询,然后将它们加在一起由于索引的构建方式而无法工作)。

标签: r google-trends gtrendsr


【解决方案1】:

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

states &lt;- paste0("US-",state.abb)

然后我只是使用purrr 来创建一个单独的框架

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-16
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 2014-04-24
    • 1970-01-01
    相关资源
    最近更新 更多