Introducción.

En esta práctica vamos a trabajar con la tabla de datos robles que ya conoces de la primera práctica.

Objetivos de la práctica:

  • Aprender a seleccionar subconjuntos de datos.
    • En un vector, seleccionar elementos
      • Por su posición
      • De acuerdo a una condición
    • En un data.frame (tabla), seleccionar filas y columnas
      • Por posición
      • De acuerdo a condición
    • Con boxplots:
      • Localizar valores atípicos
      • Si se miden dos variables (cualitativa y cuantitativa) para cada individuo, representar un boxplot por cada nivel de la variable cualitativa.
  • Limpieza de datos: detectar y gestionar valores ausentes (filas incompletas).
  • Reforzar lo aprendido sobre exploración de datos practicando con subconjuntos de la muestra.

Descarga y lectura de datos.

Para ello:

  • Selecciona la carpeta de trabajo adecuada para esta sesión con R. Usa el menú Session-> Set Working Directory.
    Indicación: Si tienes dudas de cómo hacer esto mira la Sección 3, pág. 12, del Tutorial02.
  • Explora el fichero con un editor de texto como el Bloc de Notas.
  • Lee los catos con el comando read.table y guárdalo en un data.frame (una tabla) con el nombre robles. Asegúrate de usar correctamente las opciones header, dec y sep al leer el fichero.
  • Comprueba que la lectura ha sido correcta.

Ejercicio 1

  • Calcula la media y la cuasidesviación típica muestral de la variable Nitrogeno.

  • Repite el cálculo para los primeros 14 individuos de la tabla.

  • ¿Cuántas observaciones corresponden a robles con una concentración de Potasio mayor o igual que 2?

  • Ahora calcula la media de la variable Nitrogeno para aquellas observaciones en las que Potasio es mayor o igual que 2. Compárala con la media que has calculado en el anterior apartado. Haz lo mismo con la cuasidesviación típica.

  • Calcula la media de la variable Nitrogeno para los individuos que tuvieron angina de pecho (es decir, Variedad == "A")

  • Visualiza la subtabla que contiene las 11 primeras filas y las columnas de las variables Hierro, Calcio, Zona, Tratamiento.

Ejercicio 2

  • Crea la variable lnHierro (logaritmo neperiano de la concentraciçon de hierro) y añadela a la tabla. Primero hay que calcular el logaritmo del hierro

      lnHierro = log(robles$Hierro)

    a continuación, calcular añadirlos a la tabla

      robles$lnHierro = lnHierro

observa (arriba,a la derecha) que ha cambiado el número de columnas de la tabla. Se puede hacer todo en un paso con robles\(lnHierro = log(robles\)Hierro)

  • Dibuja un diagrama de caja (boxplot) de la variable lnHierro. ¿Hay valores atípicos? ¿Cuáles son? ¿Y qué filas ocupan en la tabla? Indicación:
    • Guarda el boxplot en una variable

      bp.Calcio = boxplot(robles$Calcio)
    • Busca los valores atípicos

      bp.Calcio$out
    • Usa la función which para determinar en qué fila están

      which(robles$Calcio %in% bp.Calcio$out)
  • A continuación dibuja un gráfico que muestre los dos diagramas de caja (boxplot) de la variable Calcio correspondientes a los dos posibles niveles (valores) del factor Variedad.

Ejercicio 3

  • Calcula la media de la variable Manganeso.

  • ¿Qué ha pasado? El resultado se debe a que esa columna contiene valores ausentes. En inglés missing values, también llamados Non-Available (de ahí la respuesta de R). Prueba a utilizar la función mean con la opción na.rm = TRUE para pedirle a R que ignore esos valores ausentes al calcular la media.

  • La ausencia de algunos valores es uno de los quebraderos de cabeza más frecuentes en Análisis de Datos. Lo primero es aprender a detectarlos. Usa la función complete.cases así:

      complete.cases(robles)

    para identificar las filas de la tabla en las que hay valores ausentes (en alguna variable).

  • Combina complete.cases con which para averiguar el número de filas en las que faltan valores.

      robles = robles[complete.cases(robles), ]
  • Pídele a R (usando selección por filas) que te enseñe solo las filas de la tabla en las que faltan valores.

  • También puedes analizar una columna concreta, en este caso con la función is.na. Por ejemplo, prueba con:

      is.na(robles$Manganeso)
  • De nuevo, combínalo con which para ver qué números de fila corresponden a valores ausentes de Manganeso.

Ejercicio 4

Antes de hacer este ejercicio debes visto el vídeo (o leído la introducción) sobre los documentos reproducibles.

Crea un documento reproducible en RMarkdown a partir del código que has escrito para responder al ejercicio 1 de la práctica 2. El código debe ir en los chunks del documento reproducible y además debes añadir comentarios fuera de esos chunks explicando los pasos que das para resolver el ejercicio. A partir de ese documento reproducible debes generar documentos HTMl y docx.