El objetivo de la entrada es empezar a analizar tweets con R y que mejor comienzo que usar el hashtag #rstats para ver usuarios que más lo utilizan. [no me gusta conjugar el verbo retwitear] El primer paso es crear una app con Twitter, para ello nos dirigimos a https://apps.twitter.com/ y creamos una aplicación. Crearla es muy sencillo, sólo necesitamos una descripción y un nombre. La aplicación será la que permitirá a R interaccionar con Twitter mediante OAuth y para realizar esta interacción entre la aplicación y nuestra sesión de R es imprescindible:
- Consumer key
- Consumer secret
- Access Token
- Access Token secret
Para obtener estos 4 elementos una vez creada nuestra aplicación pulsamos el botón Test OAuth de la parte superior derecha de la pantalla y nos aparecerán. Y con estos elementos comenzamos a trabajar en R mediante el paquete twitteR:
#install.packages("twitteR") #install.packages("base64enc") library(twitteR) library(base64enc) consumer_key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" consumer_secret="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" access_token="81414758-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" access_secret="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" setup_twitter_oauth(consumer_key, consumer_secret, access_token=access_token, access_secret=access_secret)
Recuerdo, consumer_key consumer_secret access_token y access_secret lo hemos obtenido cuando creamos nuestra aplicación en Twitter que va a interactuar con R mediante OAuth y por ello usamos la función setup_twitter_oauth para que twitteR pueda obtener información de nuestra aplicación. Ya estamos en disposición de leer tweets:
rstats<-searchTwitter("#rstats", n=9999, since='2015-11-01') datos <- do.call("rbind", lapply(rstats, as.data.frame)) names(datos)
La función searchTwitter será la que más uséis cuando trabajéis con R, en este caso buscamos el hashtag #rstats, limitamos la búsqueda a 9999 tweets desde el 01 de noviembre de 2015. Se genera una lista que transformamos en un data.frame mediante la función do.call y ahora es más sencillo trabajar con estos datos (también podemos emplear twListToDF) Otro ejemplo, si deseamos ver los tweets del del usuario @r_vaquerizo hacemos:
vaquerizo <- userTimeline('r_vaquerizo',n=100) vaquerizo2 <- do.call("rbind", lapply(vaquerizo, as.data.frame))
Pero volvamos con #rstats, ya tenemos un data frame y deseamos saber que usuarios son los que más han empleado el hashtag:
usuarios <-subset(datos,isRetweet==FALSE)$screenName usuarios<-sort(table(usuarios),decreasing=T) head(usuarios) usuarios[1:30]
El manejo de estos datos es más sencillo, eliminamos los retweet y nos quedamos sólo con los nombres de los usuarios que han escrito el tweet, los tabulamos y ordenamos. Podemos hacer un head para ver los primeros o ver directamente los 30 iniciales. Evidentemente RBloggers está a la cabeza.
A ver si puedo ir poniendo algunas cosas que voy haciendo y si alguien está interesado en algún proyecto concreto que se ponga en contacto conmigo. Saludos.