Variables y Tablas en R

Librerías

  • Reshape2

Archivos

    • cana.csv,

el archivo se encuentran en la sección: Archivos.Datos/Archivos-Prácticas/

Tipos de variables

El lenguaje r posee diferentes tipos de variables, cada una orientada a almacenar y procesar de manera apropiada la información contenida. De manera práctica existen variables básicas y variables compuestas.

Variables básicas en R

Numeric: Numerico: (-4.5, 56.09, 3.4e-08)

Integer: Entero (1, 3, 4, 5)

Character: Caracter (“a”,”Pedro Lopez”)

Logic: Lógico (si, no; falso, verdadero)

Date: Fecha

Complex: Complejo

Factor: Factor

Estructuras de Datos

Array: Arreglo

Vector: Vector

Matrix; Matriz

List: Lista

Data Frame: Tabla

Creación y manejo de una tabla (data frame)

Un data.frame es una estructura compuesta de varias variables, cada variable puede tener un tipo diferente, el arreglo de una tabla es rectangular.

Los datos siguientes (no publicados) corresponden al rendimiento de caña de azúcar (kg/parcela) y el número de tallos (tallos por parcela) evaluados en 12 parcelas sujetas a dos tratamientos, testigo (0) donde no se aplicó insecticida y control quimico (1), donde se aplicaron insecticidas para el control de la mosca pinta.

rend tallos tmt

1298.5 1113 0

1524.5 1353 0

1366.5 1302 0

1285.5 1176 0

1378 1314 0

1493.5 1244 0

1500.5 1087 1

1423 1168 1

1584.5 1315 1

1629 1164 1

1464 1431 1

1520.5 1337 1

Los primeros pasos corresponden a crear las variables rend, tallos, tmt, que contienen los valores del cuadro anterior. El último paso es construir la tabla:

rend<- c(1298.5, 1524.5, 1366.5, 1285.5, 1378, 1493.5, 1500.5,1423, 1584.5, 1629, 1494, 1520.5)

tallos<- c(1113, 1353,1302,1176, 1314,1244,1087,1168,1315,1164,1431,1337)

tmt<- rep(c("Testigo","CQuimico"), each= 6)

mpcontrol<- data.frame(tmt, rend, tallos)

Observe que:

• El objeto del lado izquierdo de <- es el cual va a almacenar los valores generados del lado derecho

• La creación de un vector es con la función c(), que concatena una serie de elementos, separados por coma

• La función rep() indica que los nombres Testigo y Cquimico se repitan seis veces cada uno

• El orden de las variables es diferente al de la estructura de arriba, en el objeto generado, la primera columna es tmt, la segunda es rend y la tercera es tallos

Recomendaciones para conformar los archivos de datos csv

    • Utilice nombres cortos, sin espacios en blanco, para representar sus variables

    • No utilice ñ, vocales con acentos, diéresis, u consonantes ajenas al alfabeto español.

    • Tampoco utilice caracteres especiales, como: ?, $,%, ^, &, *, (, ),-,#, ?,,,<,>, /, |, \, [ ,] ,{, y }

    • Anote sus datos perdidos como NA

Leer una tabla de un archivo csv

El procesamiento de datos es un aspecto importante para realizar análisis en R. Usualmente, la gente captura su información con Excel, lo cuál es ventajoso en ciertos modos, pero para transferir datos a R es mejor emplear archivos de texto, particularmente archivos csv (Comma Separated Values). Aunque existen paquetes que auxilian en la importación de archivos excel u en otro formato, lo que se recomienda es que se empleen archivos de texto, por lo tanto, se recomienda convertir sus archivos Excel a formato csv. Usualmente, los archivos csv se leen con RStudio como data frame (= tabla) que es una estructura de datos que tiene R para guardar información correspondientes a un grupo estructurado de variables y sus valores.

Un archivo csv es un archivo de texto, solamente que tiene la extensión csv. La particularidad de estos archivos es que el contenido es una matriz de datos, en los cuales las columnas corresponden a variables y las hileras corresponden a lecturas individuales. Usualmente, un archivo csv emplea comas para separar los valores entre cada columna y para datos nominales utiliza comillas dobles (") como delimitadores.

Pasos para importar un archivo csv (cana.csv en este ejemplo)

    • Copiar archivo csv a folder (proyecto) de tranbajo

    • En el panel de Files, seleccionar archivo -> Import DataSet

    • En la ventana de diálogo, click Browse... y seleccione el archivo csv. En este diálogo, aparecen:

1. La ruta y nombre del archivo

2. Una vista parcial de los datos, aquí se puede ver si la manera en que los está leyendo es apropiada

3. El nombre del objeto que va a guardar los datos del archivo, se puede cambiar de ser necesario

4. Una serie de indicaciones sobre si la primera hilera contiene los nombres de las columnas y el delimitador de las mismas, estos valores se pueden cambiar.

Al final se oprime Import para generar el objeto.

Una manera alternativa es a través del panel Environment -> Import DataSet, en este caso hay otras opciones.

Formato Largo (long) y Formato Ancho (wide)

Generalmente, la información es capturada en formato ancho en Excel; sin embargo, usualmente, el formato mas apropiado para el análisis de datos en R es el formato largo. En el formato largo, algunas variables se apilan y se convierten en valores de una variable nueva, mientras que otras puedan permanecer inalteradas y la respuesta debe tener un nombre.

Un ejemplo de datos en formato ancho es:

Fecha, Trat1, Trat2, Trat3, Trat4

1, 4.5, 7.8, 123.4, 6.7

2, 9.4, 7.5, 321.3, 5.5

3, 7.9, 9.3, 69.4, 32.1

La misma información en formato largo es:

Fecha, Tmt, Respuesta

1, Trat1, 4.5

2, Trat1, 9.4

3, Trat1, 7.9

1, Trat2, 7.8

2, Trat2, 7.5

3, Trat2, 9.3

1, Trat3, 123.4

2, Trat3, 321.3

3, Trat3, 69.4

1, Trat4, 6.7

2, Trat4, 5.5

3, Trat4, 32.1

Para crear un data frame con los datos en formato ancho desde R, las instrucciones son (escriba los comandos uno por uno y ejecútelos en la consola de R, i.e., oprima la tecla Enter):

Fecha<-c(1,2,3)

Trat1<-c(4.5, 9.4, 7.9)

Trat2<-c(7.8, 7.5, 9.3)

Trat3<-c(123.4, 321.3, 69.4)

Trat4<-c(6.7, 5.5, 32.1)

En las instrucciones anteriores se generaron cinco variables: Fecha, Trat1, Trat2, Trat3 y Trat4, cada una con tres valores. La agrupación en una tabla es con la siguiente instrucción:

dftrats<-data.frame(Fecha, Trat1, Trat2, Trat3, Trat4)

Se preserva la fecha, pero a los valores de los tratamientos se les asigna el nombre Tmt; es decir, ahora cada tratamiento es un valor particular, nominal, de la variable Tmt, mientras que al contenido o valores numéricos se le asigna el nombre de Respuesta.

La conversión del formato ancho al formato largo se puede realizar con el paquete reshape2. La conversión del formato largo al ancho es menos común pero también se puede hacer con el paquete reshape2. Para convertir de formato ancho a largo se emplea la función melt. Esta función toma como primer argumento el data frame, después viene un argumento optativo id=c(var1,var2,...) que indica cuáles variables permanecen tal cual, después se introduce el nombre de las variables apiladas y el nombre de la variable respuesta.

Ejemplo 1

Los datos previos donde se tienen cuatro tratamientos y tres fechas tiene el nombre de dftrats, entonces la instrucción para apilar los tratamientos son:

dftratsmelted<-melt(dftrats, id=c("Fecha"), variable.name="Tmt", value.name="Respuesta")

Literatura recomendada

http://www.cyclismo.org/tutorial/R/types.html

Símbolos útiles

~, $, \, [ ], ( ) , { }, ", ', #, ^, *, +, -, / , -, _, <- , >