Para la realización de esto, requerias cargar los siguientes paquetes: gapminder, dplyr, ggplot

EXPLORAR BASES DE DATOS

Filtar datos

El signo de pipe ‘%>%’ es un comando del paquete dplyr y quiere decir “toma todo aquello que esta antes de esto, e incluye la información que voy a agregar”. En el caso que veremos sera: “considera toda la base de datos gapminder y procede a filtrar solo aquellos casos que tengan el año 2002”.

gapminder %>% 
  filter(year == 2002)
## # A tibble: 142 x 6
##    country     continent  year lifeExp       pop gdpPercap
##    <fct>       <fct>     <int>   <dbl>     <int>     <dbl>
##  1 Afghanistan Asia       2002    42.1  25268405      727.
##  2 Albania     Europe     2002    75.7   3508512     4604.
##  3 Algeria     Africa     2002    71.0  31287142     5288.
##  4 Angola      Africa     2002    41.0  10866106     2773.
##  5 Argentina   Americas   2002    74.3  38331121     8798.
##  6 Australia   Oceania    2002    80.4  19546792    30688.
##  7 Austria     Europe     2002    79.0   8148312    32418.
##  8 Bahrain     Asia       2002    74.8    656397    23404.
##  9 Bangladesh  Asia       2002    62.0 135656790     1136.
## 10 Belgium     Europe     2002    78.3  10311970    30486.
## # i 132 more rows

Tambien podemos, pedirle “solo considera a Peru”.

gapminder %>% 
  filter(country == "Peru")
## # A tibble: 12 x 6
##    country continent  year lifeExp      pop gdpPercap
##    <fct>   <fct>     <int>   <dbl>    <int>     <dbl>
##  1 Peru    Americas   1952    43.9  8025700     3759.
##  2 Peru    Americas   1957    46.3  9146100     4245.
##  3 Peru    Americas   1962    49.1 10516500     4957.
##  4 Peru    Americas   1967    51.4 12132200     5788.
##  5 Peru    Americas   1972    55.4 13954700     5938.
##  6 Peru    Americas   1977    58.4 15990099     6281.
##  7 Peru    Americas   1982    61.4 18125129     6435.
##  8 Peru    Americas   1987    64.1 20195924     6361.
##  9 Peru    Americas   1992    66.5 22430449     4446.
## 10 Peru    Americas   1997    68.4 24748122     5838.
## 11 Peru    Americas   2002    69.9 26769436     5909.
## 12 Peru    Americas   2007    71.4 28674757     7409.

De otro lado, si queremos conocer datos con determinadas características combinadas podemos pedir estas características separando mediante comas.

gapminder %>% 
  filter(year == "2002", country == "Peru")
## # A tibble: 1 x 6
##   country continent  year lifeExp      pop gdpPercap
##   <fct>   <fct>     <int>   <dbl>    <int>     <dbl>
## 1 Peru    Americas   2002    69.9 26769436     5909.

Ordenar

El comando arrange me permitirá visualizar los datos que me interesan. Por default me dará los datos ordenados de menor a mayor.

gapminder %>%
arrange(lifeExp)
## # A tibble: 1,704 x 6
##    country      continent  year lifeExp     pop gdpPercap
##    <fct>        <fct>     <int>   <dbl>   <int>     <dbl>
##  1 Rwanda       Africa     1992    23.6 7290203      737.
##  2 Afghanistan  Asia       1952    28.8 8425333      779.
##  3 Gambia       Africa     1952    30    284320      485.
##  4 Angola       Africa     1952    30.0 4232095     3521.
##  5 Sierra Leone Africa     1952    30.3 2143249      880.
##  6 Afghanistan  Asia       1957    30.3 9240934      821.
##  7 Cambodia     Asia       1977    31.2 6978607      525.
##  8 Mozambique   Africa     1952    31.3 6446316      469.
##  9 Sierra Leone Africa     1957    31.6 2295678     1004.
## 10 Burkina Faso Africa     1952    32.0 4469979      543.
## # i 1,694 more rows

Si deseo que me brinde datos de mayor a menor, debo especificarlo con el comando descen

gapminder %>%
arrange(desc(lifeExp))
## # A tibble: 1,704 x 6
##    country          continent  year lifeExp       pop gdpPercap
##    <fct>            <fct>     <int>   <dbl>     <int>     <dbl>
##  1 Japan            Asia       2007    82.6 127467972    31656.
##  2 Hong Kong, China Asia       2007    82.2   6980412    39725.
##  3 Japan            Asia       2002    82   127065841    28605.
##  4 Iceland          Europe     2007    81.8    301931    36181.
##  5 Switzerland      Europe     2007    81.7   7554661    37506.
##  6 Hong Kong, China Asia       2002    81.5   6762476    30209.
##  7 Australia        Oceania    2007    81.2  20434176    34435.
##  8 Spain            Europe     2007    80.9  40448191    28821.
##  9 Sweden           Europe     2007    80.9   9031088    33860.
## 10 Israel           Asia       2007    80.7   6426679    25523.
## # i 1,694 more rows

Si combino, varias indicaciones podría tener el siguiente pseudo código: “Toma todo aquello que está antes de este símbolo pipe (%>%), toda la base de datos de gapminder, luego filtra solo los años 1957 y, posteriormeente, ordena esa nueva data en orden descendiente según su población”

gapminder %>%
filter(year == 1957) %>%
arrange(desc(pop))
## # A tibble: 142 x 6
##    country        continent  year lifeExp       pop gdpPercap
##    <fct>          <fct>     <int>   <dbl>     <int>     <dbl>
##  1 China          Asia       1957    50.5 637408000      576.
##  2 India          Asia       1957    40.2 409000000      590.
##  3 United States  Americas   1957    69.5 171984000    14847.
##  4 Japan          Asia       1957    65.5  91563009     4318.
##  5 Indonesia      Asia       1957    39.9  90124000      859.
##  6 Germany        Europe     1957    69.1  71019069    10188.
##  7 Brazil         Americas   1957    53.3  65551171     2487.
##  8 United Kingdom Europe     1957    70.4  51430000    11283.
##  9 Bangladesh     Asia       1957    39.3  51365468      662.
## 10 Italy          Europe     1957    67.8  49182000     6249.
## # i 132 more rows

Resumir o Summarize

Si deseamos obtener datos de la base de datos podemos utilizar diferentes funciones, tales como mean, sum, median, min, max.

gapminder %>%
  filter(year == 2002) %>%
  summarize(meanLifeExp = mean(lifeExp), totalPop = sum(pop))
## # A tibble: 1 x 2
##   meanLifeExp   totalPop
##         <dbl>      <dbl>
## 1        65.7 5886977579

Agrupar datos

Podemos agrupar los datos según año

gapminder %>%
 filter(continent == "Americas")%>%
 group_by(year) %>%
  summarize(meanLifeExp = mean(lifeExp), totalPop = sum(pop))
## # A tibble: 12 x 3
##     year meanLifeExp  totalPop
##    <int>       <dbl>     <int>
##  1  1952        53.3 345152446
##  2  1957        56.0 386953916
##  3  1962        58.4 433270254
##  4  1967        60.4 480746623
##  5  1972        62.4 529384210
##  6  1977        64.4 578067699
##  7  1982        66.2 630290920
##  8  1987        68.1 682753971
##  9  1992        69.6 739274104
## 10  1997        71.2 796900410
## 11  2002        72.4 849772762
## 12  2007        73.6 898871184

O segun año y continente

gapminder %>%
 group_by(year, continent)
## # A tibble: 1,704 x 6
## # Groups:   year, continent [60]
##    country     continent  year lifeExp      pop gdpPercap
##    <fct>       <fct>     <int>   <dbl>    <int>     <dbl>
##  1 Afghanistan Asia       1952    28.8  8425333      779.
##  2 Afghanistan Asia       1957    30.3  9240934      821.
##  3 Afghanistan Asia       1962    32.0 10267083      853.
##  4 Afghanistan Asia       1967    34.0 11537966      836.
##  5 Afghanistan Asia       1972    36.1 13079460      740.
##  6 Afghanistan Asia       1977    38.4 14880372      786.
##  7 Afghanistan Asia       1982    39.9 12881816      978.
##  8 Afghanistan Asia       1987    40.8 13867957      852.
##  9 Afghanistan Asia       1992    41.7 16317921      649.
## 10 Afghanistan Asia       1997    41.8 22227415      635.
## # i 1,694 more rows

Transformar o crear nuevas variables

gapminder %>%
  mutate(gdp = gdpPercap*pop)
## # A tibble: 1,704 x 7
##    country     continent  year lifeExp      pop gdpPercap          gdp
##    <fct>       <fct>     <int>   <dbl>    <int>     <dbl>        <dbl>
##  1 Afghanistan Asia       1952    28.8  8425333      779.  6567086330.
##  2 Afghanistan Asia       1957    30.3  9240934      821.  7585448670.
##  3 Afghanistan Asia       1962    32.0 10267083      853.  8758855797.
##  4 Afghanistan Asia       1967    34.0 11537966      836.  9648014150.
##  5 Afghanistan Asia       1972    36.1 13079460      740.  9678553274.
##  6 Afghanistan Asia       1977    38.4 14880372      786. 11697659231.
##  7 Afghanistan Asia       1982    39.9 12881816      978. 12598563401.
##  8 Afghanistan Asia       1987    40.8 13867957      852. 11820990309.
##  9 Afghanistan Asia       1992    41.7 16317921      649. 10595901589.
## 10 Afghanistan Asia       1997    41.8 22227415      635. 14121995875.
## # i 1,694 more rows

VISUALIZACION CON GGPLOT2

Solo queremos usar datos del 2020, entonces crearemos una nueva base de datos. Eso lo haremos con ‘asignar (<-)’. Un gráfico en ggplot tiene tres partes: 1. la base de datos que estamos usando, 2. la estetica de tu gráfico (ej. cuál es tu variable x y tu variable y) y 3. es el tipo de objeto geometrico que le estás agregando al gráfico (va en otra capa).

library(gapminder)
library(dplyr) 
gapminder_2002 <-  gapminder %>%
 filter(year == 2002)

Gráfico de dispersión

geom_point()elabora un diagrama de dispersión.

ggplot(gapminder_2002, aes(x = pop, y = gdpPercap)) +
  geom_point()

En situaciones como esta, será necesario transformar las variables a su logaritmo. Para especificar que queremos que el eje x esté transformado en una escala logaritmica, deberemos especificarlo en el codigo con scale_x_log10()

ggplot(gapminder_2002, aes(x = pop, y = gdpPercap)) +
  geom_point()+
  scale_x_log10()+
  scale_y_log10()

Si deseamos graficarlo, se requiere crear un objeto

espvida <- gapminder %>%
 group_by(year, continent) %>%
  summarize(meanLifeExp = mean(lifeExp), totalPop = sum(pop))
## `summarise()` has grouped output by 'year'. You can override using the
## `.groups` argument.
ggplot(espvida, aes(x = year, y = meanLifeExp))+
geom_point()+
expand_limits(y=0)

Puedes generar diferentes tipos de gráficos, solo cambiando la base geométrica en la que desees que se presente. Por ejemplo, si deseas: - gráfico de lineas, reemplazas por geom_line() - gráfico de barras, reemplazas por geom_col()

Podemos querer representar diferentes variables con el color, así como el tamaño de los puntos size

ggplot(gapminder_2002, aes(x = pop, y = gdpPercap, color = continent, size = pop)) +
  geom_point()+
  scale_x_log10()+
  scale_y_log10()

También puede usarse expand_limits(y=0)' para expandir los límites del gráfico ofacet_wrap(~)` para facetados que generan más subdivisiones en la representación de los gráficos (ej. comparando años o continentes)

Histograma

Es un gráfico que nos ayuda a conocer la distribución de los casos, cuando tenemos variables cuantitativas. Puedes arreglar la estética del histograma con algunos comandos especificos como binwith()

gapminder_2002 <- gapminder %>%
  filter(year == 2002) %>%
  mutate(pop_by_mil = pop/1000000)

ggplot(gapminder_2002, aes(x = pop_by_mil)) +
  geom_histogram(bins = 50)

Boxplot

Sirve para comparar diferentes variables cualitativas, en función de una variable cuantitativa.

gapminder_2002 <- gapminder %>%
  filter(year == 2002) 

ggplot(gapminder_2002, aes(x=continent, y=gdpPercap))+
geom_boxplot()+
scale_y_log10() +
  ggtitle("Comparando el PBI per capita de continentes")

EJERCICIOS

Ejercicio 1: ¿Como haras para conocer el pais con mayor gpd per capita de las ‘Americas’, usando filter, mutate y arrange?

Ejercicio 2: Elabora un gráfico de dispersion en el cual distingues por color los continentes y el tamaño de cada calculo refiere a la esperanza de vida ‘lifeExp’.