问题
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)
来源:https://stackoverflow.com/questions/35878239/issues-with-gtrendsr-queries