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()
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.
Primero escriban la consulta usando SQL (pueden usar comentarios de R con # o escribirlo antes del bloque de código correspondiente).
Luego escriban la consulta usando dplyr y ejecuten el código para ver el resultado y verificar que sea correcto.
Usando show_query() comparar la consulta con lo que escribieron en a.
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:
Primero escriban la consulta usando SQL (pueden usar comentarios de R con # o escribirlo antes del bloque de código correspondiente).
Luego escriban la consulta usando dplyr y ejecuten el código para ver el resultado y verificar que sea correcto.
Usando show_query() comparar la consulta con lo que escribieron en a.
¿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
Une la tabla plot con la tabla surveys para devolver la cantidad de surveys por cada tipo de gráfico.
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).
Modifica la consulta anterior para que devuelva la cantidad de roedores por año.
3.pivot_wider() y pivot()longer
A partir de la tabla con toda la información (que creamos uniendo el resto de las tablas):
Contar la cantidad de "genus" distintos para cada plot_id y año. Algunas pistas:
La tabla debera tener 3 columnas: plot_id, year, n_generos (que contiene la cantidad de genus distintos
Para calcular la cantidad de cosas distintas exploren la funcion n_distinct() y summarise()!
"Ensancha" la tabla para organizar la información tal que los años sean columnas y plot_id se organice en filas.
"Alarga" la tabla para que en cada fila haya una combinación de plot_id y year.
Lectura sugerida
- When We Miss Missingness (Cuando extrañamos la falta) por Cat Hicks