martes, 1 de julio de 2014

Seleccionar partes específicas de la matriz

En esta entrada vamos a utilizar la matriz de datos del experimento sobre ratas que describí en esta entrada. Para descargar esta matriz haz click aquí. Una vez descargada y colocada en nuestro directorio de trabajo procedemos a cargarla:

Datos<-read.csv ("ratas.csv", header=T)
En algunas ocasiones, y por diferentes razones, queremos seleccionar alguna parte específica de nuestra matriz y guardarla en otro objeto diferente para poder trabajar con esta parte de manera más sencilla. Para seleccionar casos específicos de la matriz de datos, la instrucción general seria como sigue:

Nuevamatriz<- Matrizdedatos[filas, columnas]
Mediante esta instrucción creamos una nueva matriz (Nuevamatriz) que contiene las filas y las columnas que especifiquemos de la vieja matriz (Matrizdedatos). Imaginemos ahora que nos hemos dado cuenta que cometimos un error de medición en el tiempo1 y por lo tanto queremos seleccionar solo los casos que contienen el tiempo2 y guardarlo en una nueva matriz llamada Datos2. Para ello ejecutamos la siguiente instrucción:

Datos2 <- Datos[1:20, c(1,3)]
Con esta instrucción le estamos diciendo a R que cree un nuevo objeto llamado Datos2 que contiene las filas de la 1 a la 20 (todos los participantes) y las columnas 1 y 3 (grupo y tiempo2) de la matriz Datos. Otra forma más sencilla de hacerlo es como sigue:

Datos2 <- Datos[, c("grupo","tiempo2")]
La instrucción dos funciones hacen lo mismo, pero tienen dos diferencias importantes. Primero, en esta última matriz, no hemos especificado las filas que queremos seleccionar. Cuando no lo hacemos, R asume que queremos todas las filas. La segunda diferencia es que para especificar las columnas hemos usado la función c() con el nombre de las variables que queremos seleccionar.

Imaginemos ahora que sospechamos que en el bebedero de las ratas del grupo 5 había una  concentración de glucosa mayor que en los bebederos de otros grupos. Por lo tanto queremos mirar más detenidamente sus datos. Para ello usamos la siguiente instrucción:

Datos_Grupo5 <- Datos[Datos$grupo=="Grupo5",]
Datos_Grupo5

Con esta instrucción lo que le estamos pidiendo a R es que nos muestre todas las columnas de las filas que sean igual a Grupo5. Si ciertamente estamos seguros que el bebedero del grupo 5 tenía una dosis demasiado alta de glucosa y queremos eliminar a este grupo de  nuestra matriz, podemos hacerlo con la siguiente instrucción:

Nuevos_datos<- Datos[Datos$grupo!="Grupo5",]
Nuevos_datos

Con esta instrucción le estamos diciendo a R que cree un nuevo objeto llamado Nuevos_Datos y que del objeto Datos no seleccione ni las filas ni las columnas del grupo 5, pero si lo demás. Es decir, que almacene los datos que no sean del grupo 5.

En algunas ocasiones, es necesario realizar puntos de cortes en nuestros datos. Esto ocurre cuando no queremos valores mayores o menores a un determinado valor. Más de 22 segundos es un tiempo excesivo para recorrer el laberinto. Por dicha razón sería conveniente eliminar estos datos:

DatosMenor22 <- Nuevos_datos[Datos$tiempo1 <22,]
Con esta instrucción le estamos pidiendo a R que cree un nuevo objeto llamado  DatosMenor22 y que selecciones las filas que tengan un tiempo1 menor de 22 de todas las columnas. Sin embargo, un problema de la anterior instrucción es que solo tiene en cuenta los tiempos mayores a 22 en la variable tiempo1. Si queremos considerar los tiempos tanto de la variable tiempo1 y tiempo2 entonces tenemos que introducir la siguiente instrucción:

DatosMenor22 <- Nuevos_datos[Datos$tiempo1 <22 & Datos$tiempo2 < 22,]
El símbolo & es el que usamos para indicar a R que se tienen que dar las dos condiciones establecidas, es decir, que los tiempos tiempo1 y un tiempo2 sean  menores de 22.

Esto es todo por hoy. En la próxima entrada veremos como seleccionar partes de una matriz usando una función específica para ello. Hasta la próxima!

PD: click aquí para descargar el script de esta entrada. Recuerda hacer click en la parte superior derecha para saltar la publicidad 

0 comentarios :

Publicar un comentario