lunes, 26 de octubre de 2015

Borrar caracteres no ingleses de una BD



Esta semana quería seguir con el tema del Eyetracker, pero las respuestas que he encontrado me han llevado a nuevas preguntas y aún está demasiado flojo el tema como para dar una respuesta a esta duda. Así que lo dejamos ( esperemos) para la semana que viene. Os diré que casi he conseguido evitar los diagramas de densidad y dibujar frecuencias como algunos de vosotros pedíais. Lo único es que me gustaría estructurarlo, porque la verdad es que he encontrado unas 5 soluciones que  espero que os gusten. Así, volvernos a una vieja entrada que es va de como limpiar datos que nuca está de más.

Hace ya tiempo que me vi obligado a tratar una serie de BD portuguesas para hacer un analisis de su liga (Está todavía muy en primeros pasos, pero me gustaría en el futuro mostraros algo). Esto causaba multiples problemas en el trato de caracteres sobre todo al guardar en .RData y cambiar de sistema operativo. Ahora os ofrezco una solución con un poquito de scrapeo de webs fáciles como Wikipedia gracias a librería rvest. El script es el siguiente y lo podeis ejecutar sin problemas sobre vuestra consola R.

Un saludo a todos y muchas gracias por las visitas de esta semana que han sido una gran recompensa para el trabajo que he hecho.

lunes, 19 de octubre de 2015

Plotear datos de Eye Tracker

Hoy vamos a comentar algo más cercnao, al fin a la neurociencia. Gracias a un colega eRRero ( Álex Estudillo)  como yo hace unas semanas se me planteo un duda. ¿Cómo representar unos datos de eyetracker en R?. La verdad es que nunca lo había hecho, aunque si que había hecho varias representaciones sobre mapas. Así que me puse a ello

Lo primero es elegir unas imagenes donde representar los datos que serán las siguientes:



Si quereis runear este código deberiais de descargaros estas imagenes en el directorio base ( ver linea 19 del siguiente script).

Una vez hecho esto ahora vamos a simular unos datos de mirada sobre ellas (Esto causa problemas en la representación, espero solucionarlos en posts posteriores).



Una vez generados los datos llega la hora de representarlos. En este post lo vamos a hacer por la lógica de una función de densidad.
Lo siguiente será plotear y explicar las ordenes que sirven para esto:

 ggplot(a, aes(x = x, y =y)) Dibuja los puntos en las coordenadas x e y de la BD y con nombres de columnas x e y
annotation_custom(g, # Image
                    xmin= -0.15, # Coordinates to represent the image
                    xmax= 1.25,
                    ymin= -0.25,
                    ymax= 1.25)
Nos dibuja la imagen g intentando fijar los puntos más cercanos posible a las esquinas definidas ( Este es el problema de simular datos, lo tengo solucinar en futuros posts)
stat_density2d(data= a, aes(x= x, y=y, fill = ..level.., alpha = ..level..), size= 10, bins= 50, geom='polygon') Dibuja la densidad. Size y bins sirven para hacer más visibles o menos el mapa de densidad.
geom_point(data= a, aes(x=x, y=y),  
             color="black",

             position=position_jitter(w=0.01,h=0.01),
             alpha=0.5)
  Dibuja los puntos desviados gracias a la función jitter y se hacen más o menos transparentes con alpha.
scale_fill_gradient( low = "green",  
                       high = "red",
                       limits = c(0, 15) ,

                       breaks = c(0, 3, 5, 10) 
  ) Esta orden define como rellenamos el dibujo de densidad. Loe nos dice el datos inferior, High nos dice cual es el color superior,  limits( a nivel leyenda) nos dice los limites de nuestra escala y finalmente breks ( a nivel leyenda) nos dice los putnos de corte para la escala, Guide es booleano que nos deice si se muestra la leyenda o no.
Las siguientes ordenes solo definen el nivel de transparencia (scale_alpha_continuous) con la misma lógica que lo anterior y los límites del plot(xlim e ylim).



Este es el código :


Siguiendo esta lógica dibujaremos y simularemos otros ejemplo:


También podemos modificar como rellenas la escala, como por ejemplo por rangos


El problema que tiene simular datos es que tengo problemas para fijar el gráfico. En futuros post intentaré solventar esto. Todos eso gracias a mi colega Alex que me ha ayudado mucho en este post y al cual le quiero agredecer desde aquí su colaboración. Una respuesta no es nada si un una buena pregunta.

lunes, 12 de octubre de 2015

Code Combat una manera divertida de aprender.

Hace unas semanas llegó a mí un divertido juego para aprender a programar en distintos lenguajes de programación. Lo cierto es que aprender a programar jugando es una gran idea y ojalá pronto añadan nuevos lenguajes (como por ejemplo R). La verdad es que esta iniciativa tiene mucha salida en el mundo docente ¿qué mejor manera de motivar a los alumnos que un videojuego? Por lo menos a los más nerds de la clase. También es útil para los que no sepáis programar y queráis una aproximación a este mundo. La única faena es que no se pueda jugar offline. A continuación os dejo un video para que disfrutéis de un friki game play.


domingo, 4 de octubre de 2015

Computar diferencias entre fechas con R

Como cientifico de datos muchas veces te encuentras el problema de que a varias fechas le quieres restar una fecha concreta. Aquí os muestro una función para autoamtizar este proceso.