Tendencia de búsquedas
R dispone de multitud de paquetes o bibliotecas que nos facilitan la consulta a distintas fuentes de datos web. En concreto, para poder consultar y analizar las tendencias en las búsquedas que se hacen con Google, Google Trends, tenemos entre otros el paquete gtrendsR.
A nadie se le escapa el interés que comprender la utilidad de la herramienta Google Trends en el momento de la investigación de las palabras clave o de u_topic_ de trabajo que deseamos analizar. Vamos a ver un modo de analizar rápidamente esos datos con R. El paquete de referencia gtrends está alojado en CRAN siendo su uso gratuito. Instálalo en tu entorno de trabajo R y veamos cuales son su posibilidades.
Instalamos los paquetes necesarios para nuestro trabajo; si ya los tienes, obvia la instalación y sólo carga las librerías.
#install.packages("gtrendsR")
#install.packages("dplyr")
#install.packages("highcharter")
library(gtrendsR)
library(dplyr)
library(highcharter)
Como decíamos el paquete gtrendsR nos permite consultar la API de Google Trends de forma sencilla y rápida mediante la función gtrends(). Veamos sus posibilidades con los parámetros de la consulta:
keyword, un vector de caracteres con las palabras clave que se quieren consultar en Google Trends.- Por ejemplo:
gtrends(c("investigación de mercados", "investigación comercial"))
- Por ejemplo:
geo, un vector de caracteres con los países o regiones geográficas que se quieren consultar. Estos códigos siguen el estándar ISO-3166-2. Por defecto tienen el valorallpara consultas globales.- Por ejemplo:
gtrends("COVID", c("ES", "FR", "PT"))consulta la tendencia de la palabra COVID en España, Francia y Portugal. Si quieres consultar el listado de regiones geográficas disponibles, indicalo concountries.
- Por ejemplo:
time, texto que especifica el período temporal de consulta; por defecto los últimos cinco años, pero sus posibles valores son:now 1-H. Última hora.now 4-H. Últimas cuatro horas.now 1-d. Último día.now 7-d. Últimos siete días.today 1-m. Últimos 30 días.today 3-m. Últimos 90 días.today 12-m. Últimos 12 meses.today+5-y. Últimos cinco años (por defecto).all. Todo desde el comienzo de Google Trends (2004).Y-m-d Y-m-d. Rango temporal entre dos fechas (ej.: “2010-01-01 2010-04-03”)
gprop, texto que especifica el producto de Google para el cual se pide información. Las opciones válidas sonweb(por defecto),news,images,froogleyyoutube.category, un carácter indicando el identificador de categoría de búsqueda que queremos filtrat. Por defecto es 0 y significa que incluye Todas las categorías. Hay más de 1400 categorías y pueden ser consultadas, una vez cargado el paquete gtrendsR con el comandocategories. Si por ejemplo queremos filtrar la búsqueda por el ámbito de las motocicletas podemos especificar category=”273″.hl, un texto especificando el código ISO-639-1 y que puede ser seguido del código de país. Por defecto es hl=”en-US”. Para español es hl=”es”; para español de España: “es-ES”. Solo afecta a los resultados obtenidos en los temas o búsquedas relacionadas.low_search_volumebooleano (TRUE / FALSE) que indica si se debe incluir o no en los resultados, aquellos de regiones con bajo volumen de búsqueda. Es muy útil ponerlo a TRUE cuando estamos analizando palabras poco buscadas.cookie_url, un texto especificando la URL de la que obtener las cookies; no se debe usar por defecto y la recomendamos sólo para usuarios avanzados.
Ejemplos de búsqueda
Búsqueda de la palabra “VCF” en España durante el último mes
result1 <- gtrends(keyword="Valencia CF", geo="ES", time="today 12-m", hl="es-ES")
Búsqueda de la palabra “Valencia CF” y también “Peter Lim” en España durante los últimos 30 días.
result2 <- gtrends(keyword=c("Valencia CF", "Peter Lim"), geo=c("ES","ES"), time="today 1-m", hl="es-ES")
¿Qué nos dicen los resultados?
interest_over_time
Nos proporciona datos temporales de una o varias palabras clave y contiene los siguientes campos:
date, de clase Date, en formato yyyy-mm-dd.hits, de clase carácter, es el interés de la búsqueda, siendo 100 el momento de mayor interés y todos los demás valores relativos a él. Es decir, si en septiembre de 2010 hubo un interés 100 y en enero de 2011 un interés 50, quiere decir que el interés por esa búsqueda en enero de 2011 fue la mitad que en septiembre de 2010.keyword, de clase carácter, la palabra clave que ha sido buscada.geolocalización de clase carácter, puede ser world o un código de país.gprop, producto seleccionado. En consonancia con lo explicado anteriormente. Por defecto es web.category, código de categoría; consultardata("categories")para conocer todos los códigos.
Otros datos interesantes
related_topics, que proporciona información sobre temas relacionados con la palabra clave.related_queries, que de forma similar al caso anterior muestra las búsquedas relacionadas.interest_by_country, interés del término por país.interest_by_region, interés del término por región.interest_by_city, interés del término por ciudad.
Representar como gráfico
Obtenemos los datos de Google Trends, y los almacenamos en un dataframe, reteniendo solo los campos 1 y 2 del mismo.
# manipular datos
es_trends <- gtrends(keyword="Valencia CF", geo="ES", time="today 12-m")
head(es_trends[["interest_over_time"]],25)
date hits keyword geo time gprop category
1 2020-01-19 90 Valencia CF ES today 12-m web 0
2 2020-01-26 100 Valencia CF ES today 12-m web 0
3 2020-02-02 75 Valencia CF ES today 12-m web 0
4 2020-02-09 55 Valencia CF ES today 12-m web 0
5 2020-02-16 93 Valencia CF ES today 12-m web 0
6 2020-02-23 64 Valencia CF ES today 12-m web 0
7 2020-03-01 46 Valencia CF ES today 12-m web 0
8 2020-03-08 65 Valencia CF ES today 12-m web 0
9 2020-03-15 18 Valencia CF ES today 12-m web 0
10 2020-03-22 15 Valencia CF ES today 12-m web 0
11 2020-03-29 13 Valencia CF ES today 12-m web 0
12 2020-04-05 14 Valencia CF ES today 12-m web 0
13 2020-04-12 13 Valencia CF ES today 12-m web 0
14 2020-04-19 19 Valencia CF ES today 12-m web 0
15 2020-04-26 14 Valencia CF ES today 12-m web 0
16 2020-05-03 16 Valencia CF ES today 12-m web 0
17 2020-05-10 14 Valencia CF ES today 12-m web 0
18 2020-05-17 13 Valencia CF ES today 12-m web 0
19 2020-05-24 19 Valencia CF ES today 12-m web 0
20 2020-05-31 19 Valencia CF ES today 12-m web 0
21 2020-06-07 35 Valencia CF ES today 12-m web 0
22 2020-06-14 41 Valencia CF ES today 12-m web 0
23 2020-06-21 49 Valencia CF ES today 12-m web 0
24 2020-06-28 77 Valencia CF ES today 12-m web 0
25 2020-07-05 50 Valencia CF ES today 12-m web 0
df1 <- es_trends$interest_over_time[,1:2]
Si deseamos pedir ayuda, sobre la función y saber más escribe ?gtrends().
Finalmente creamos el gráfico… veces que han salido en las noticias (datos de Google Trends) el Valencia CF.
highchart() %>%
hc_chart(type = 'line') %>%
hc_xAxis(categories = as.Date(df1$date)) %>%
hc_add_series(df1$hits, name='hits Valencia CF') %>% #*** API
hc_credits(enabled=TRUE, text='InvestigaOnline.com', href ='https://www.investigaonline.com') %>%
hc_exporting(enabled=TRUE)
¿Hacemos ahora otra búsqueda pero con más términos y la representamos en el mismo gráfico? Lo hacemos de una vez; fíjate en las diferencias.
es_trends <- gtrends(c("Glenfidich"), geo = c("GB"), gprop = "web", time = "today 3-m")
df1 <- es_trends$interest_over_time[,1:2]
es_trends <- gtrends(c("Cardhu"), geo = c("GB"), gprop = "web", time = "today 3-m")
df2 <- es_trends$interest_over_time[,1:2]
es_trends <- gtrends(c("Lagavulin"), geo = c("GB"), gprop = "web", time = "today 3-m")
df3 <- es_trends$interest_over_time[,1:2]
highchart() %>%
hc_chart(type = 'line') %>%
hc_xAxis(categories = as.Date(c(df1$date, df2$date, df3$date))) %>%
hc_add_series(df1$hits, name='hits Glenfidich', marker=list(enabled=FALSE), color='salmon') %>% #<<
hc_add_series(df2$hits, name='hits Cardhu', marker=list(enabled=FALSE), color='cadetblue') %>% #<<
hc_add_series(df3$hits, name='hits Lagavulin', marker=list(enabled=FALSE), color='green') %>% #<<
hc_credits(enabled=TRUE, text='InvestigaOnline.com', href ='https://www.investigaonline.com') %>%
hc_exporting(enabled=TRUE)
Y hasta aquí este post. Espero sea de utilidad. Como siempre decimos… ¡explora y experimenta!