Clase 9

Objetivos de Aprendizaje

  • Conectar a una base de datos desde R.

  • Utilizar verbos tidyverse para seleccionar columnas y filtrar filas.

  • Escribir código R que permita modificar/generar columnas utilizando verbos tidyverse.

  • Entender qué es un NA en R y como afecta los resultados de una consulta.

  • Utilizar verbos de tidyverse para resumir información

  • Escribir código de R para poder hacer JOINs.

  • Entender que es una tabla larga y una tabla ancha.

  • Utilizar pivot_wider y pivot_longer para cambiar la estrcutura de una tabla.

Slides

Ejercicios

Utilizando la misma base de datos con la que venimos trabajando y desde RStudio resolver los siguientes ejercicios y subir el código al campus. Uno por grupo!

1. summarise(), group_by()

  1. A partir de la tabla surveys, calcular la media, máximo, mínimo y cantidad de registros (usando la función n()) para la variable hindfoot_length.

    1. Primero escriban la consulta usando SQL (pueden usar comentarios de R con # o escribirlo antes del bloque de código correspondiente).

    2. Luego escriban la consulta usando dplyr y ejecuten el código para ver el resultado y verificar que sea correcto.

    3. Usando show_query() comparar la consulta con lo que escribieron en a.

  2. Modificar la consulta anterior (hacer una copia) para calcular la media, máximo, mínimo y cantidad de registros para la variable hindfoot_length por cada especie (specie_id). De nuevo:

    1. Primero escriban la consulta usando SQL (pueden usar comentarios de R con # o escribirlo antes del bloque de código correspondiente).

    2. Luego escriban la consulta usando dplyr y ejecuten el código para ver el resultado y verificar que sea correcto.

    3. Usando show_query() comparar la consulta con lo que escribieron en a.

  3. ¿Cual es la especie más común? Pista: hay que agregar la función arrange()

2. Joins!

Consejito: miren el diagrama en la dipo 15 para guiarse con las claves y los campos que tienen las tablas

  1. Une la tabla plot con la tabla surveys para devolver la cantidad de surveys por cada tipo de gráfico.

  2. Conecta a la tabla species y escribe una consulta que una las tablas species con la tabla survey excluyendo a todos los registros de los no roedores (En inglés Roedores es Rodent).

  3. Modifica la consulta anterior para que devuelva la cantidad de roedores por año.

3.pivot_wider() y pivot()longer

  1. A partir de la tabla con toda la información (que creamos uniendo el resto de las tablas):

    1. Contar la cantidad de "genus" distintos para cada plot_id y año. Algunas pistas:

      1. La tabla debera tener 3 columnas: plot_id, year, n_generos (que contiene la cantidad de genus distintos

      2. Para calcular la cantidad de cosas distintas exploren la funcion n_distinct() y summarise()!

    2. "Ensancha" la tabla para organizar la información tal que los años sean columnas y plot_id se organice en filas.

    3. "Alarga" la tabla para que en cada fila haya una combinación de plot_id y year.

Lectura sugerida