-->

Issues with gtrendsR queries

2019-06-26 04:18发布

问题:

I am receiving two errors on gTrendsR searches. I attempted to use the package with both the CRAN download and devel version from https://github.com/PMassicotte/gtrendsR.

library(gtrendsR)
gconnect(usr, psw, verbose=TRUE)
#Google login successful!
sport_trend <- gtrends(c("nhl", "nba", "nfl"))
#Error in names(trend) <- make.names(paste(kw, geo)) : 
#  'names' attribute [3] must be the same length as the vector [0]

gtrends("Kim Kardashian")
#Error: Not enough search volume. Please change your search terms.

I have tried many search terms to no avail. The function in question appears to be .processResults:

  kw <- trimws(unlist(strsplit(queryparams[1], ","), use.names = FALSE))
  geo <- trimws(unlist(strsplit(queryparams[3], ","), use.names = FALSE))
  names(trend) <- make.names(paste(kw, geo))

These expressions do not appear to rely on the search results but on the query itself. The second error stems from:

if (length(vec) < 2) {
    stop("Not enough search volume. Please change your search terms.",
         call. = FALSE)
  }

The variable vec gets its value from getForm which I could not find documentation for. I have tried to specify the query items but that did not work either. Restarting the R session also did not resolve the issue.

The session information:

sessionInfo()
# R version 3.2.3 (2015-12-10)
# Platform: x86_64-w64-mingw32/x64 (64-bit)
# Running under: Windows 7 x64 (build 7601) Service Pack 1
# 
# locale:
#   [1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
# [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
# [5] LC_TIME=English_United States.1252    
# 
# attached base packages:
#   [1] stats     graphics  grDevices utils     datasets  methods   base     
# 
# other attached packages:
#   [1] gtrendsR_1.3.3
# 
# loaded via a namespace (and not attached):
#   [1] zoo_1.7-12       colorspace_1.2-6 scales_0.4.0     googleVis_0.5.10 plyr_1.8.3      
# [6] tools_3.2.3      gtable_0.2.0     RCurl_1.95-4.8   Rcpp_0.12.3      ggplot2_2.1.0   
# [11] RJSONIO_1.3-0    grid_3.2.3       munsell_0.4.3    bitops_1.0-6     lattice_0.20-33

回答1:

The package authors had to do a full rewrite due to Google API changes. Get the unreleased gtrendsR 2.0.0 code here:

devtools::install_github('PMassicotte/gtrendsR')

library(gtrendsR)
# do not need to log in anymore
# syntax change!
gt.us <- gtrends("USA", geo="US", time = "2004-01-01 2004-01-30")


回答2:

I was having the same problem. For some reason changing my code like below helped. Hopefully you can figure out why. I'm a noob.

> styles <- gtrends(query=c("Pixie Pant", "Yoga Pants", "Jeans"))
# Error in names(trend) <- make.names(paste(kw, geo)) : 
# 'names' attribute [3] must be the same length as the vector [2]
> commodities2 <- gtrends(c("Oil prices", "mortgage rates"), res="7d", geo= "US")
> styles <- gtrends(c("Pixie Pant", "Yoga Pants", "Jeans"))
# Error in names(trend) <- make.names(paste(kw, geo)) : 
#  'names' attribute [3] must be the same length as the vector [2]
> styles <- gtrends(c("Pixie Pant", "Yoga Pants", "Jeans"), res="7d", geo= "US")
> plot(styles)


标签: r gtrendsr