Este post te detalla de forma directa y sencilla los pasos a seguir para construir un heatmap con R que indique las mejores horas y días para publicar en Twitter.

Desde Doctormetrics ya os hemos explicado anteriormente cómo trabajar en Excel con las estadísticas que podemos exportar de Twitter y Facebook. En esta ocasión el protagonista será R, un software libre de procesamiento y explotación de datos utilizado cada día en más ámbitos.

Así que en los siguientes párrafos encontraréis una pequeña guía que os servirá para saber, gracias a esta herramienta, cuál ha sido la mejor hora y día de publicación en Twitter. Intentamos así aproximaros al potencial de R para que lucubréis cómo exprimirla al máximo para obtener los mejores resultados en redes sociales.

twitter

Antes de entrar en materia es indispensable:

twitter

Una vez instalado todo y con los datos descargados ejecutaremos R Studio, que presentará este aspecto:

twitter

 Seguidamente veremos paso a paso qué debemos hacer para crear en mapa de calor que hemos visto anteriormente:

Primer paso:

Pinchar en “Session” > “Set Working Directory” y “Choose Directory” (o Crtl + Shift + H). Ahí elegiremos nuestro entorno de trabajo, el directorio donde hayamos guardado el .csv. Para la ocasión nosotros hemos optado por el “Escritorio”.

Segundo paso: 

Crear un nuevo script: “File” > “New File” > “R Script” (o Crtl + Shift + N)

Tercer paso:

Para comenzar a trabajar R deberá leer el archivo .csv exportado de Twitter. Para ello escribiremos en el propio script esta línea de código:

  • data = read.csv(“<Nombre_archivo>.csv”, stringsAsFactors = F, sep=”,”)

Donde en <Nombre_archivo> escribiremos el nombre del archivo que hayamos elegido a la hora de descargar las estadísticas de Twitter. En nuestro caso ha sido tweet_activity_metrics_ejemplo.csv.

Cuarto paso:

Hacemos clic sobre esa primera línea del script para situar el cursor y pulsamos “Run” para ejecutarla.

twitter paso heatmap

Esta será siempre la dinámica: pegar la línea de código propuesta en el script y ejecutar con “Run” (o Control+Enter)

Quinto paso:

Para ver la tabla escribimos en la segunda línea: View(data), situamos el cursos sobre ella y pulsamos “Run”.

twitter heatmap

Como veréis se abrirá una pestaña adjunta en la que encontraremos en una tabla todos los datos de Twitter.

twitter mapa de calor

Sexto paso:

Recordad que nuestro objetivo es determinar qué hora y día obtiene mejores resultados en función del promedio de interacciones. Por ello optamos por eliminar todos los tuits que sean respuestas a usuarios. Para deshacerse de los replies escribimos en una tercera línea:

  • data = data[-grep(“^@”,data$Texto.del.Tweet),]

Séptimo paso:

Lo siguiente será ajustar los horarios. En nuestro caso, las horas que muestra Twitter en los datos exportados no coinciden con la hora real de publicación. Hay un lapsus de 2 horas que debemos corregir. En función del país de origen de cada cuenta y su configuración horaria esa diferencia será mayor o menor. Conviene que la contratéis para que no haya confusiones.

Tendremos que preparar una serie de librerías previamente. Escribid y ejecutad con “Run” una por una estas líneas de código

  • install.packages(“lubridate”,dependencies=TRUE)
  • library(lubridate)
  • install.packages(“stringr”,dependencies=TRUE)
  • library(stringr)

Una vez instaladas, copiad, pegad y “Run” una por una las siguientes líneas para ajustar y dar formato a la columna:

  • data$tiempo = str_sub(data$tiempo,start=1, end=16)
  • data$tiempo = strptime(data$tiempo, “%Y-%m-%d %H:%M”)

Las siguientes líneas de código, como muestra la captura inferior, deben seleccionarse al mismo tiempo a la hora de ejecutar:

hrs <- function(u) { x <- u * 3600

return(x)}

r heatmap

Y por último data$tiempo = strptime(data$tiempo, “%Y-%m-%d %H:%M”)+hrs(2)

Ahora sí ya tendremos las publicaciones a la hora deseada

twitter días

Octavo paso:

Estamos muy cerca ya de nuestro mapa de calor de Twitter. Los próximos pasos nos permitirán extraer el día y hora de publicación de cada tuit como vemos en la captura.

twitter días

  • data$hora = hour(data$tiempo)
  • data$dia = weekdays(data$tiempo)

Noveno paso:

Ahora es el turno de agrupar por día y hora según el promedio de interacciones, a modo de tabla dinámica de Excel. Para ello deberemos copiar el siguiente código y ejecutarlo en este orden:

  • install.packages(“dplyr”)
  • library(dplyr)
  • data = data %>% group_by(dia, hora) %>% summarise(interacciones = round(mean(interacciones),1))

El resultado será este:

twitter

Décimo paso:

Llegamos al último hito del camino, la representación gráfica en un mapa de calor. Para conseguirlo antes deberemos:

  • install.packages(“ggplot2”)
  • library(ggplot2)

Es imprescindible también cargar en el script, en una nueva línea, x11() , que nos permitirá que el mapa de calor se abra en una ventana independiente que pueda exportarse en una imagen.

Último paso:

Deberemos introducir y ejecutar será:

  • ggplot(data,aes(x=factor(dia, levels = c(“lunes”,”martes”,”miércoles”,”jueves”,”viernes”,”sábado”,”domingo”),ordered = TRUE), y=hora)) + geom_tile(aes(fill=data[,”interacciones”])) + theme_classic()+scale_fill_gradient(name=”Interacción media MES MARCAEJEMPLO”,low =”#F8F8FA”,high = “#201545”) +  xlab(“”) + ylab(“Horas de Publicación Twitter”)

Si todo ha ido bien se abrirá una ventana nueva con el tan deseado mapa de calor de las mejores horas y días para publicar en Twitter. Ahora simplemente deberemos elegir el formato de salida que deseemos y listo.

twitter heatmap

¿Se os ha despertado la curiosidad de qué más se puede hacer con R? Pues en Doctormetrics ya hemos escrito en otras ocasiones sobre cómo utilizar esta herramienta. Por ejemplo podéis leer cómo conectarla con Facebook o Google Analytics.

Finalizamos con una captura con todos las líneas de código y el orden utilizado en este post.

twitter heatmap code

Mapa de calor con las mejores horas y días de publicación en Twitter (con R)

Leave Comment

Your email address will not be published. Required fields are marked *