02/02/2021

Requisitos

  • Paquetes:
    • rmarkdown
    • tidyverse
  • Data:
    • faithful.xlsx
    • gapminder_subset.xlsx
    • gapminder.xlsx

Repaso

  1. Crear un nuevo proyecto en nuevo directorio: “repaso-sesion3”
  2. Crear un nuevo archivo R Markdown:
  • Documento HTML
  • Título: “Repaso de lectura de datos”
  • Contenido:
    • Encabezado nivel 2: Lectura de datos
    • 1 Bloque de código en el que leen los datos
    • Encabezado nivel 2: Aplicación de funciones
    • 3 bloques de código en los que se aplican las funciones head(), tail() y str() a la data.
  1. Presentar el resultado de hacerle Knit al documento.

Práctica con código

Se busca que los participantes se familiaricen con la lectura de código de análisis de datos.

Para ello, se usarán funciones de los paquetes readxl, dplyr y ggplot2.

Todos estos paquetes se incluyen en la descarga del paquete tidyverse.

En esta sesión no estaremos creando funciones propias.

Traducción del código al lenguaje natural

¿Cómo leer este código? Ejemplo 1

gapminder <- read_excel("data/gapminder.xlsx")

Considerar sus componentes

  1. gapminder: nombre de variable
  2. <-: operador de asignación
  3. read_excel(): función de lectura de datos provenientes de excel
  4. "data/gapminder.xlsx": ubicación del archivo Excel

Usar la función read_excel() para leer la tabla contenida en el archivo “data/gapminder.xlsx” y asignarle el nombre gapminder.

¿Cómo leer este código? Ejemplo 2

gapminder %>% 
  sample_n(10)
  1. gapminder: objeto que contiene un data.frame o tibble
  2. %>%: operador pipe para encadenar funciones
  3. sample_n(): función para obtener una muestra aleatoria de n observaciones

Tomar el objeto gapminder, luego obtener una muestra aleatoria (sample) de 10 observaciones.

Toma en cuenta que la muestra aleatoria arrojará resultados distintos cada vez que se vuelva a correr el código.

gapminder %>% 
  sample_n(10)
## # A tibble: 10 x 6
##    country       continent  year lifeExp       pop gdpPercap
##    <chr>         <chr>     <dbl>   <dbl>     <dbl>     <dbl>
##  1 Argentina     Americas   1972    67.1  24779799     9443.
##  2 United States Americas   1992    76.1 256894189    32004.
##  3 Ecuador       Americas   1952    48.4   3548753     3522.
##  4 Brazil        Americas   1952    50.9  56602560     2109.
##  5 Guatemala     Americas   1997    66.3   9803875     4684.
##  6 Brazil        Americas   2002    71.0 179914212     8131.
##  7 Venezuela     Americas   1997    72.1  22374398    10165.
##  8 Costa Rica    Americas   1982    73.4   2424367     5263.
##  9 Panama        Americas   1952    55.2    940080     2480.
## 10 Peru          Americas   1982    61.4  18125129     6435.

¿Cómo leer este código? Ejemplo 3

gapminder <- gapminder %>% 
  rename(pais = country,
         continente = continent,
         año = year,
         expectativa_de_vida = lifeExp,
         poblacion = pop,
         pbi_per_capita = gdpPercap)
  1. gapminder (izquierda): nombre de objeto de destino
  2. <-: operador de asignamiento
  3. gapminder (derecha): objeto que contiene un data.frame o tibble
  4. %>%: operador pipe para encadenar funciones
  5. rename(): función para renombrar las columnas de un data.frame o tibble

Todo lo contenido dentro de rename() sirve para indicar los nuevos nombres de las columnas.

gapminder <- gapminder %>% 
  rename(pais = country,
         continente = continent,
         año = year,
         expectativa_de_vida = lifeExp,
         poblacion = pop,
         pbi_per_capita = gdpPercap)

Tomar el objeto gapminder (derecha). Luego, renombrar las columnas según el detalle. Asignarle el resultado de esta operación al objeto gapminder (izquierda).

Ahora al obtener una muestra aleatoria de gapminder obtenemos otros nombres de columnas.

gapminder %>% 
  sample_n(10)
## # A tibble: 10 x 6
##    pais        continente   año expectativa_de_vida poblacion pbi_per_capita
##    <chr>       <chr>      <dbl>               <dbl>     <dbl>          <dbl>
##  1 Ecuador     Americas    1992                69.6  10748394          7104.
##  2 Chile       Americas    2002                77.9  15497046         10779.
##  3 New Zealand Oceania     1977                72.2   3164900         16234.
##  4 Jamaica     Americas    1977                70.1   2156814          6650.
##  5 Cuba        Americas    1972                70.7   8831348          5305.
##  6 Chile       Americas    1987                72.5  12463354          5547.
##  7 Mexico      Americas    1952                50.8  30144317          3478.
##  8 Peru        Americas    1982                61.4  18125129          6435.
##  9 Guatemala   Americas    1977                56.0   5703430          4880.
## 10 Guatemala   Americas    1997                66.3   9803875          4684.

¿Cómo leer este código? Ejemplo 4

gapminder %>% 
  filter(año == "2007") %>% 
  count(continente)
  1. gapminder: objeto que contiene un data.frame o tibble
  2. %>%: operador pipe para encadenar funciones
  3. filter(): función de filtrado de observaciones
  4. año = 2007: condición para preservar las observaciones
  5. count(): función para obtener un recuento de observaciones
  6. continente: columna objetivo para el recuento

Tomar el objeto gapminder. Luego, filtrar las observaciones, conservando aquellas en que el año sea 2007. Luego, contar las observaciones presentes en cada continente.

gapminder %>% 
  filter(año == "2007") %>% 
  count(continente)
## # A tibble: 2 x 2
##   continente     n
## * <chr>      <int>
## 1 Americas      25
## 2 Oceania        2

¿Cómo leer este código? Ejemplo 5

gapminder %>% 
  filter(año == "2007") %>% 
  count(continente) %>% 
  ggplot(aes(x = continente, y = n)) +
  geom_col()
  1. gapminder: objeto que contiene un data.frame o tibble
  2. %>%: operador pipe para encadenar funciones
  3. filter(): función de filtrado de observaciones
  4. año = 2007: condición para preservar las observaciones
  5. count(): función para obtener un recuento de observaciones
  6. continente: columna objetivo para el recuento

gapminder %>% 
  filter(año == "2007") %>% 
  count(continente) %>% 
  ggplot(aes(x = continente, y = n)) +
  geom_col()
  1. ggplot(): función para iniciar la creación de un gráfico
  2. aes(x = continente, y = n): función para mapeo de variables a componentes de gráfico
  3. +: operador de agregación de capas a gráficos
  4. geom_col(): función de creación de gráfico de columnas

gapminder %>% 
  filter(año == "2007") %>% 
  count(continente) %>% 
  ggplot(aes(x = continente, y = n)) +
  geom_col()

Tomar el objeto gapminder. Luego, filtrar las observaciones, conservando aquellas en que el año sea 2007. Luego, contar las observaciones presentes en cada continente.

Luego, iniciar un gráfico con el resultado de la operación anterior, en el que se mapee las variables continente en el eje X y n en el eje Y. A esto, agregarle una capa en la que se crea un gráfico de columnas según el mapeo previsto.

gapminder %>% 
  filter(año == "2007") %>% 
  count(continente) %>% 
  ggplot(aes(x = continente, y = n)) +
  geom_col()

Práctica

Pasos iniciales

Paso 1: Creamos un nuevo proyecto (dentro de la carpeta “R”)

Menú File > 
  New Proyect > 
  New Directory > 
  New Proyect > 
  Elegir nombre y ubicación > 
  Create project

Paso 2: Creamos un nuevo archivo R Markdown

Menú File > 
  New File > 
  R Markdown > 
  Configurar nombre de autor >
  Ok
  

El objetivo es crear un nuevo reporte similar a Evolución de indicadores peruanos usando gapminder.

  • Archivo de datos: “data/gapminder.xlsx”
  • País objetivo: Estados Unidos (United States)
  • Comparación entre dos países: Estados Unidos y China (China)
  • Comparación entre grupo de países: Países miembros permanentes del consejo de seguridad de la ONU
    • Estados Unidos
    • China
    • Francia (France)
    • Reino Unido (United Kingdom)
    • Rusia (no va a usar porque no existe dentro de gapminder)

Opcionalmente, se pueden usar las mismas opciones en el encabezado YAML del documento R Markdown.

---
title: "Evolución de indicadores peruanos usando gapminder"
author: "Samuel Calderon"
date: "2021-02-01"
output: 
  html_document:
    theme: journal
    highlight: pygments
    df_print: kable
---