Capítulo2 Flujo de trabajo

El tema proviene de los siguientes sitios.

English: https://r4ds.had.co.nz/workflow-projects.html

Español: https://es.r4ds.hadley.nz/04-workflow-basics.html


Fecha de la ultima revisión

## [1] "2024-11-07"

2.1 Temas:

  • Reduciendo Errores

  • getwd()

  • setwd()

  • Su Proyecto

  • Selecionar el tab Session →→ Set Working Directory →→ To Project Directory ***

2.2 Creación de un proyecto:

  • crear un proyecto para cada curso.
  • crear un proyecto para cada investigación.
  • No se te olvida de añadir tu archivos de datos en el proyecto.
  • Describe claramente todos tus análisis y donde conseguiste la información.
  • Describe tu interpretación de los análisis o gráficos.
  • Correr los “scripts” uno a la vez para asegurar que funcione.
  • knit el archivo .rmd para asegurar que no falte nada.
  • no mezclar proyectos de investigación en un mismo proyecto.

#install.packages("tidyverse")
library(tidyverse) # ggplot2, dplyr, tidyr, readr, purrr, tibble, stringr, forcats

# install.packages("datos")
library(datos)

2.2.1 Un set de sobre carros en el archivo (paquete) datos

millas
## # A tibble: 234 × 11
##    fabricante modelo     cilindrada  anio cilindros transmision traccion ciudad
##    <chr>      <chr>           <dbl> <int>     <int> <chr>       <chr>     <int>
##  1 audi       a4                1.8  1999         4 auto(l5)    d            18
##  2 audi       a4                1.8  1999         4 manual(m5)  d            21
##  3 audi       a4                2    2008         4 manual(m6)  d            20
##  4 audi       a4                2    2008         4 auto(av)    d            21
##  5 audi       a4                2.8  1999         6 auto(l5)    d            16
##  6 audi       a4                2.8  1999         6 manual(m5)  d            18
##  7 audi       a4                3.1  2008         6 auto(av)    d            18
##  8 audi       a4 quattro        1.8  1999         4 manual(m5)  4            18
##  9 audi       a4 quattro        1.8  1999         4 auto(l5)    4            16
## 10 audi       a4 quattro        2    2008         4 manual(m6)  4            20
## # ℹ 224 more rows
## # ℹ 3 more variables: autopista <int>, combustible <chr>, clase <chr>

2.2.2 Mi primer gráfico

ggplot(data = millas) +
  geom_point(mapping = aes(x = cilindrada, y = autopista))

2.2.3 Las funciones head y tail

ggplot(data=millas)

millas
## # A tibble: 234 × 11
##    fabricante modelo     cilindrada  anio cilindros transmision traccion ciudad
##    <chr>      <chr>           <dbl> <int>     <int> <chr>       <chr>     <int>
##  1 audi       a4                1.8  1999         4 auto(l5)    d            18
##  2 audi       a4                1.8  1999         4 manual(m5)  d            21
##  3 audi       a4                2    2008         4 manual(m6)  d            20
##  4 audi       a4                2    2008         4 auto(av)    d            21
##  5 audi       a4                2.8  1999         6 auto(l5)    d            16
##  6 audi       a4                2.8  1999         6 manual(m5)  d            18
##  7 audi       a4                3.1  2008         6 auto(av)    d            18
##  8 audi       a4 quattro        1.8  1999         4 manual(m5)  4            18
##  9 audi       a4 quattro        1.8  1999         4 auto(l5)    4            16
## 10 audi       a4 quattro        2    2008         4 manual(m6)  4            20
## # ℹ 224 more rows
## # ℹ 3 more variables: autopista <int>, combustible <chr>, clase <chr>
head(millas, n=3) # las primeras 6 filas
## # A tibble: 3 × 11
##   fabricante modelo cilindrada  anio cilindros transmision traccion ciudad
##   <chr>      <chr>       <dbl> <int>     <int> <chr>       <chr>     <int>
## 1 audi       a4            1.8  1999         4 auto(l5)    d            18
## 2 audi       a4            1.8  1999         4 manual(m5)  d            21
## 3 audi       a4            2    2008         4 manual(m6)  d            20
## # ℹ 3 more variables: autopista <int>, combustible <chr>, clase <chr>
tail(millas, n=10) # las ultimas 10 filas
## # A tibble: 10 × 11
##    fabricante modelo     cilindrada  anio cilindros transmision traccion ciudad
##    <chr>      <chr>           <dbl> <int>     <int> <chr>       <chr>     <int>
##  1 volkswagen new beetle        2    1999         4 auto(l4)    d            19
##  2 volkswagen new beetle        2.5  2008         5 manual(m5)  d            20
##  3 volkswagen new beetle        2.5  2008         5 auto(s6)    d            20
##  4 volkswagen passat            1.8  1999         4 manual(m5)  d            21
##  5 volkswagen passat            1.8  1999         4 auto(l5)    d            18
##  6 volkswagen passat            2    2008         4 auto(s6)    d            19
##  7 volkswagen passat            2    2008         4 manual(m6)  d            21
##  8 volkswagen passat            2.8  1999         6 auto(l5)    d            16
##  9 volkswagen passat            2.8  1999         6 manual(m5)  d            18
## 10 volkswagen passat            3.6  2008         6 auto(s6)    d            17
## # ℹ 3 more variables: autopista <int>, combustible <chr>, clase <chr>

2.3 Información sobre el archivo

Usa el signo de interogación ? antes del nombre de la función o archivo

?millas


?head

2.3.1 Las dimensiones del archivo

dim(millas) # dimension of data frame
## [1] 234  11

2.3.2 Construcción de mi primer gráfico

  • el nombre del archivo es primero
  • nombre de las variables (nombre de las columnas)
  • si quiere tener un color para cada grupo
ggplot(data = millas) +
  geom_point(mapping = aes(x = cilindrada, y = autopista,  colour=fabricante))

2.3.3 La función shape para cambiar la forma de los puntos

La función shape es para cambiar el estilo de los puntos

ggplot(data = millas) +
 geom_point(mapping = aes(x = cilindrada, y = autopista), shape=23, color = "369787", fill="yellow")

2.3.4 Salvar un grafico en otro formato

Como salvar la figura en formato recuperable para subir en otros documentos o compartir

 ggplot(data = millas) +
   geom_point(mapping = aes(x = cilindrada, y = autopista), color = "blue")

ggsave("cilindro_milla.jpg") #. png, .tiff
millas
## # A tibble: 234 × 11
##    fabricante modelo     cilindrada  anio cilindros transmision traccion ciudad
##    <chr>      <chr>           <dbl> <int>     <int> <chr>       <chr>     <int>
##  1 audi       a4                1.8  1999         4 auto(l5)    d            18
##  2 audi       a4                1.8  1999         4 manual(m5)  d            21
##  3 audi       a4                2    2008         4 manual(m6)  d            20
##  4 audi       a4                2    2008         4 auto(av)    d            21
##  5 audi       a4                2.8  1999         6 auto(l5)    d            16
##  6 audi       a4                2.8  1999         6 manual(m5)  d            18
##  7 audi       a4                3.1  2008         6 auto(av)    d            18
##  8 audi       a4 quattro        1.8  1999         4 manual(m5)  4            18
##  9 audi       a4 quattro        1.8  1999         4 auto(l5)    4            16
## 10 audi       a4 quattro        2    2008         4 manual(m6)  4            20
## # ℹ 224 more rows
## # ℹ 3 more variables: autopista <int>, combustible <chr>, clase <chr>

Ejercicio para someter:

  1. baja el paquete “ggversa”
  2. activar el paquete “ggversa”
  3. mirar las variables del archivo en este paquete que se llama “Anolis”
  4. haga un gráfico que incluye lo siguiente
    1. en el eje de x = el SVL. que es el tamaño del lagarto del hocico a la cloaca y en la variable de “TAIL” en el eje de y.
    2. selecciona la variable “SEX_AGE” para color
    3. selecciona la función correcta para que cada “SEX_AGE” tenga su proprio gráfico
    4. salva el gráfico en .png o .jpg
    5. subir el gráfico aquí
library(ggversa)
head(Anolis)
## # A tibble: 6 × 15
##   STUDY      Survey_Site      LOCATION TIME  DATE  SEASON SPECIES SEX_AGE HEIGHT
##   <chr>      <chr>            <chr>    <tim> <chr> <chr>  <chr>   <chr>    <dbl>
## 1 Mark/recap North Tower      El Verde 10:46 3/13… dry    Anolis… Female     0  
## 2 Mark/recap Woods walkway t… El Verde 10:15 2/20… dry    Anolis… Juvenil    0  
## 3 Mark/recap Woods walkway t… El Verde 11:15 2/21… dry    Anolis… Male       0  
## 4 Mark/recap North Tower      El Verde 11:06 3/16… dry    Anolis… Juvenil    0.3
## 5 Mark/recap North Tower      El Verde 12:31 3/11… dry    Anolis… Male       0.3
## 6 Mark/recap North Tower      El Verde 01:00 3/9/… dry    Anolis… Female     0.4
## # ℹ 6 more variables: DISTANCE_FROM_CENTERLINE <dbl>, PERCH_SUBSTRATE <chr>,
## #   PERCH_DIAMETER <int>, WEIGHT <dbl>, SVL <dbl>, TAIL <dbl>

2.3.5 Extracción de valores de un conjunto de datos

Aqui usamos el conjunto de datos de diamantes que se encuentra en el paquete ggplot2

2.3.5.1 Los primeros datos de un archivo

head(diamantes)
## # A tibble: 6 × 10
##   precio quilate corte     color claridad profundidad tabla     x     y     z
##    <int>   <dbl> <ord>     <ord> <ord>          <dbl> <dbl> <dbl> <dbl> <dbl>
## 1    326    0.23 Ideal     E     SI2             61.5    55  3.95  3.98  2.43
## 2    326    0.21 Premium   E     SI1             59.8    61  3.89  3.84  2.31
## 3    327    0.23 Bueno     E     VS1             56.9    65  4.05  4.07  2.31
## 4    334    0.29 Premium   I     VS2             62.4    58  4.2   4.23  2.63
## 5    335    0.31 Bueno     J     SI2             63.3    58  4.34  4.35  2.75
## 6    336    0.24 Muy bueno J     VVS2            62.8    57  3.94  3.96  2.48

2.3.5.2 La cantidad de fila

nrow(diamantes)
## [1] 53940

2.3.5.3 La cantidad de columnas (variables)

ncol(diamantes)
## [1] 10

2.3.5.4 La dimensiones de un archivo

dim(diamantes)
## [1] 53940    10

2.3.5.5 El valor máximo de una variable

max(diamantes$precio)
## [1] 18823

2.3.5.6 El valor mínimo de una variable

min(diamantes$precio)
## [1] 326

2.3.5.7 Los valores discretos de una variable

unique(diamantes$corte)
## [1] Ideal     Premium   Bueno     Muy bueno Regular  
## Levels: Regular < Bueno < Muy bueno < Premium < Ideal
  • diamantes$corte

  • diamantes$precio

2.4 Ejemplos de Gráficos

library(readr)
Vuelos_SJU_2018_Ene <- read_csv("Datos/Vuelos_SJU_2018_Ene.csv")

head(Vuelos_SJU_2018_Ene)
## # A tibble: 6 × 14
##   FL_DATE OP_UNIQUE_CARRIER ORIGIN ORIGIN_CITY_NAME ORIGIN_STATE_ABR DEST 
##   <chr>   <chr>             <chr>  <chr>            <chr>            <chr>
## 1 2/1/18  NK                SJU    San Juan, PR     PR               MCO  
## 2 2/1/18  AA                MIA    Miami, FL        FL               SJU  
## 3 2/1/18  AA                SJU    San Juan, PR     PR               DFW  
## 4 2/1/18  AA                SJU    San Juan, PR     PR               MIA  
## 5 2/1/18  AA                SJU    San Juan, PR     PR               ORD  
## 6 2/1/18  AA                MIA    Miami, FL        FL               SJU  
## # ℹ 8 more variables: DEST_CITY_NAME <chr>, DEST_STATE_ABR <chr>,
## #   DEP_TIME <dbl>, DEP_DELAY <dbl>, CRS_ARR_TIME <dbl>, ARR_TIME <dbl>,
## #   ARR_DELAY <dbl>, CANCELLED <dbl>