###### tags: `UAX` `Estudiantes` `Laboratorio` `Prácticas` <font color = 'gray'> <p style="text-align:right;">Prof.: Laura J. Marcos-Zambrano </font> # Curso 24-25. Laboratorio II: Manejo de R :::info **Objetivos:** Operar en el entorno R. Manejar comandos básicos de la librería tidyverse para filtrar y seleccionar datos y calcular estadísticos simples. ::: #### Preparación: 1. Abrir RStudio. 2. Abrir un Script de R y guardarlo como `laboratorio2.R` >Guarda todo lo que hagas en el script porque te será útil para recordar las funciones y comandos usados. 4. Descargar el archivo [toy.csv ](https://drive.google.com/file/d/1b8-JEERbx_7MyOO8LkmC1qMP_GCYqpC1/view?usp=sharing) 4. Ver la [hoja](https://images.datacamp.com/image/upload/v1676302697/Marketing/Blog/Tidyverse_Cheat_Sheet.pdf) de comandos de Tidyverse. ### Manejo del paquete tidyverse para manipulación de datos. Cargar librería `tidyverse` y dataset `starwars`. ```r=1 library(tidyverse) data(starwars) ``` >:sleuth_or_spy: Inspecciona el dataset. ### Filtrar y seleccionar datos: ```r=1 #Ejemplos usando select # Seleccionar todas las columnas menos el nombre starwars %>% select(-name) #Seleccionar sólo las columnas que tienen subraya (_) starwars %>% select(contains("_")) #Seleccionar sólo las columnas que empiezan con "s" starwars %>% select(starts_with("s")) #Crear un data frame con los nombres y planeta de origen (homeworld) homeworld <- starwars %>% select(name, homeworld) #Filtrar datos #Filtrar por especies: sólo humanos human <- starwars %>% filter(species == "Human") #Filtrar por especies: sólo humanos del planeta Tatooine starwars %>% filter(species == "Human", homeworld == "Tatooine") #Crear un nuevo datframe con todas las especies menos los Droides starwars_nodroids <- starwars %>% filter(species != "Droid") ``` * ¿Cuántos registros cumplen las condiciones finales? A la hora de filtrar y seleccionar te serán utiles los condicionales: | Símbolo | Significado | | ------- | --------------------- | | < | Menor que | | > | Mayor que | | == | Igual que | | <= | Menor o igual que | | >= | Mayor o igual que | | != | Diferente que | | %in% | Pertenece al conjunto | | is.na | Es NA | | !is.na | No es NA | ### Seleccionar y agrupar datos ```r=1 #Usamos group_by y tally starwars %>% group_by(species) %>% tally() #Añadiendo otra variable starwars %>% group_by(species, gender) %>% tally() #Si lo quieres guardar en el environment recuerda asignarle un nombre table_gender <- starwars %>% group_by(species, gender) %>% tally() ``` ### Calcular algunos estadísticos >na.rm=T quiere decir que elima los NA (valores No Asignados o sin datos) ```r= starwars %>% group_by(species) %>% summarise(mean_height = mean(height, na.rm = T),mean_mass = mean(mass,na.rm = T)) ``` * ¿Cómo calcularías la desviación estándar (sd) de esos parámetros? Recuerda consultar con `?` si no sabes como usar una función o comando. Por ejemplo: `?summarise()` ,`?sd()`. ### Crear gráficos y modificar algunos elementos. ```r=1 #Hacer un gráfico de la altura vs. la masa de los personajes ggplot(starwars, aes(height, mass)) + geom_point() #Puedes modificar el color ggplot(starwars, aes(height, mass)) + geom_point(colour = "red") #Modificando el color y el punto ggplot(starwars, aes(height, mass)) + geom_point(colour = "purple", pch = 3) #Modificando el color y el fondo ggplot(starwars, aes(height, mass)) + geom_point(colour = "red") + theme_light() ``` * Al crear los gráficos puedes observar que hay un punto que corresponde a un personaje con una masa muy grande. Inspecciona el datset, filtra usando las funciones de tidyverse, crea un nuevo dataframe sin ese personaje y crea de nuevo el gráfico final. **Ejercicio:** * Descarga el dataset `toy.csv` cargalo en R studio usando la función `read_csv` de la libreria `tidyverse`. Tienes que poner la dirección donde has guardado el archivo descargado. En el ejemplo, el archivo está en la carpeta "Descargas" ```r=1 toy <- read_csv("Descargas/toy.csv") ``` > IMC es Indice de Masa Corporal, IMC_clas: clasificación de acuerdo al IMC. > IAS significa Indice de Alimentación Saludable; IAS_clas: clasificación de acuerdo al IAS. > CCintura significa Circunferencia de cintura. * Inspecciona el dataset, haz un resumen de la media (mean) de las variables (Peso, Altura,IMC, IAS, CCintura). Agrupando por sexo. * Haz una tabla sólo con los pacientes femeninos ¿Cuántos registros cumplen las condiciones? ¿De estos cuantos tienen Sobrepeso (Overweight)? :sleuth_or_spy: Usa select y filter. * Haz un gráfico usando ggplot relacionando el IMC (Indice de masa corporal) con el peso (Weight_Kg) de **todos los pacientes.** * Repítelo filtrando sólo los pacientes categorizados como "Overweight" y "Obesity". **Ejercicio:** * Utiliza los comandos adecuados para instalar los paquetes de R `ape` `phangorn` y `phytools` que utilizaremos en el laboratorio de la siguiente semana. Carga las librerías y envia un print de pantalla con el output, demostrando que la instalación fue exitosa o si hubo algún problema. ```r=1 install.packages("ape") install.packages("phangorn") install.packages("phytools") ``` ### Entrega de la Actividad Al finalizar sube el script usado como una tarea a Laboratorio2. --- <font color = 'gray'> <p style="text-align:left;"> Práctica de R basada en Speciation & Population Genomics: a how-to-guide </font>