Ejercicio 4: data-massage

El objetivo del ejercicio 4 es hacer las mismas cosas que en el ejercicio 3, de manera más compacta, y con más datos. También la idea es refinar un poco el análisis de los datos. Vamos a trabajar con el mismo tipo de datos que la vez anterior: puede repasar si quieren de qué se trataban los datos

Empezamos

Vamos a trabajar con 4 archivos de datos; descárguenlos aquí: archivo 1, archivo 2, archivo 3 y archivo 4.

Una vez descargados, tenemos que cargarlos con read.csv (o read.table). Como tienen detalles de formato, aquí va el código para levantarlos:

archivo1=read.table('input/080416_094310_094045_1_CCF.csv',sep=",",skip = 2,header = T)
archivo2=read.table('input/080516_093900_094045_2_CCF.csv',sep=",",skip = 2,header = T)

y así para cada archivo. Tip: usar la tecla TAB para autocompletar el nombre del archivo. Evita errores y ahorra tiempo y frustraciones.

Atentti: ¿dónde descargaron los archivos? Los dejaron en una carpeta que se llama “input”? Repasen el uso de archivos y directorios del sesión anterior.

Ahora unimos todo en un solo data.frame, usando la función rbind():

datos=rbind(archivo1, archivo2, archivo3, archivo4)

Factores

El data frame obtenido presenta varios detalles de formato. Para dejarlo a punto hay que:

  1. Convertir la variable ID en un factor.
  2. Convertir la variable trialType en un factor con 3 niveles: “ejemplo”, “ensayo”, y “test”.
  3. Crear un factor en el data frame a partir de la variable “acierto”. Llamarle “acierto.f”.
  4. Cambiar los niveles del factor “acierto.f” a “No” y “Si”.

Paquetes

  1. Instalar plyr, ggplot2 y reshape2.
  2. Cargar plyr y ggplot2 en memoria.
  3. ¿Qué hace la función aaply()? ¿A qué paquete pertenece?
  4. ¿Qué hace la función qplot()? ¿A qué paquete pertenece?
  5. ¿Y la función aes()?

Tip: Pueden usar la función help(f) para saber mas sobre una función dada f. O lo que es lo mismo: ?f. ***

ddply

Con los datos obtenidos, y usando ddply:

  1. Convertir la variable “aciertos” (no el factor “aciertos.f”) en una variable numérica.
  2. Calcular el promedio de tiempos de reacción y la tasa de aciertos para cada tarea. Ojo, ¡que no aparezcan NAs!
  3. Hacer lo mismo, pero para cada tarea y para cada tipo de ensayo (variable trialType). ¿Aparecen NaNs? ¿Qué son los NaNs?
  4. Crear un data frame que no tenga ensayos de tipo “ejemplo”. Trabajar sobre ese data frame a continuación.
  5. Limpiar outliers de tiempo de reacción en los datos, esto es, quitar aquellos ensayos en que el tiempo de reacción es mayor a la media de todos los ensayos más 3 desvíos estándar, o menor a 200 ms (ver ejercicio 1), evaluando cada tarea por separado. Sugerencia: usar z-scores y mutate. Tip Nótese que un outlier “por arriba”, equivale a un z-score mayor de 3.

Encuentre el error

Las siguientes líneas de código dan error, o no hacen lo que se supone que tienen que hacer. Copialas, pegalas, ejecutalas, y corregilas.

  1. library(lmerTest)

  2. ddply(datos,"task",mean(RT))

  3. factor(datos$session, labels="1,2,3,4") #suponemos que los datos están en el data frame llamado "datos"

  4. ddply(datos,"task","trialType",summarize,media=mean(RT))

  5. levels(datos$struct)=c("ccv","cv")

  6. ddply(datos,c("task","trialType"),summarize,media=mean(RT),sd(RT),zscore=(RT-media)/desv)


En este link se pueden encontrar las soluciones