2.2 Práctica Guiada
En esta ocasión utilizaremos los datos de la librería gapminder
para utilizar todo lo que aprendimos sobre el tidyverse
.
## Observations: 1,704
## Variables: 6
## $ country <fct> Afghanistan, Afghanistan, Afghanistan, Afghanistan, Af…
## $ continent <fct> Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, …
## $ year <int> 1952, 1957, 1962, 1967, 1972, 1977, 1982, 1987, 1992, …
## $ lifeExp <dbl> 28.801, 30.332, 31.997, 34.020, 36.088, 38.438, 39.854…
## $ pop <int> 8425333, 9240934, 10267083, 11537966, 13079460, 148803…
## $ gdpPercap <dbl> 779.4453, 820.8530, 853.1007, 836.1971, 739.9811, 786.…
2.2.1 Ejemplo 1
Calcular el promedio, el máximo y el mínimo de la esperanza de vida de cada continente en el año 2007. Presentar los datos ordenados según la esperanza de vida promedio.
Necesitamos filtrar los datos tal que sólo queden aquellos correspondientes a 2007. Luego, agrupamos los casos de acuerdo a su continente, y calculamos los indicadores agregados solicitados. Luego, ordenamos los resultados.
ejercicio1 <- gapminder %>%
filter(year == 2007) %>%
group_by(continent) %>%
summarise(esp_vida_prom = mean(lifeExp),
esp_vida_max = max(lifeExp),
esp_vida_min = min(lifeExp)) %>%
arrange(esp_vida_prom)
ejercicio1
## # A tibble: 5 x 4
## continent esp_vida_prom esp_vida_max esp_vida_min
## <fct> <dbl> <dbl> <dbl>
## 1 Africa 54.8 76.4 39.6
## 2 Asia 70.7 82.6 43.8
## 3 Americas 73.6 80.7 60.9
## 4 Europe 77.6 81.8 71.8
## 5 Oceania 80.7 81.2 80.2
2.2.2 Ejemplo 2
Construir una nueva variable en el dataset que contenga una estimación del PBI. Estimar la mediana del PBI, y construir otra variable que tome valor “ALTO” cuando el PBI supera ese valor, y “BAJO” cuando no.
Calculamos el PBI como el producto entre la población y el PBI per cápita para cada uno de los países y años. A continuación, guardamos el cálculo de la mediana del PBI en un valor llamado mediana_GDP. Por último, utilizamos la función case_when
para poder construir la variable de nivel de PBI de acuerdo a la condición lógica solicitada. Nótese que el dataframe ejercicio2
ha sido re-escrito.
ejercicio2 <- gapminder %>%
mutate(GDP = pop * gdpPercap)
mediana_GDP <- median(ejercicio2$GDP)
ejercicio2 <- ejercicio2 %>%
mutate(GDP_level = case_when(GDP > mediana_GDP ~ "ALTO",
GDP < mediana_GDP ~ "BAJO"))
head(ejercicio2)
## # A tibble: 6 x 8
## country continent year lifeExp pop gdpPercap GDP GDP_level
## <fct> <fct> <int> <dbl> <int> <dbl> <dbl> <chr>
## 1 Afghanist… Asia 1952 28.8 8.43e6 779. 6.57e 9 BAJO
## 2 Afghanist… Asia 1957 30.3 9.24e6 821. 7.59e 9 BAJO
## 3 Afghanist… Asia 1962 32.0 1.03e7 853. 8.76e 9 BAJO
## 4 Afghanist… Asia 1967 34.0 1.15e7 836. 9.65e 9 BAJO
## 5 Afghanist… Asia 1972 36.1 1.31e7 740. 9.68e 9 BAJO
## 6 Afghanist… Asia 1977 38.4 1.49e7 786. 1.17e10 BAJO
2.2.3 Ejemplo 3
Crear una copia de la base donde sólo se conserven las variables country, year y lifeExp, pero con los nombres pais, anio y espVida.
Utilizamos select()
para quedarnos con las columnas solicitadas, y rename()
para cambiar sus nombres.
ejercicio3 <- gapminder %>%
select(country, year, lifeExp) %>%
rename(pais = country,
anio = year,
espVida = lifeExp)
head(ejercicio3)
## # A tibble: 6 x 3
## pais anio espVida
## <fct> <int> <dbl>
## 1 Afghanistan 1952 28.8
## 2 Afghanistan 1957 30.3
## 3 Afghanistan 1962 32.0
## 4 Afghanistan 1967 34.0
## 5 Afghanistan 1972 36.1
## 6 Afghanistan 1977 38.4
2.2.4 Ejemplo 4
Crear una copia de la base donde sólo se conserven las variables country, year y gdpPercap, pero con los nombres pais, anio y pbiPercap.
ejercicio4 <- gapminder %>%
select(country, year, gdpPercap) %>%
rename(pais = country,
anio = year,
pbiPercap = gdpPercap)
head(ejercicio4)
## # A tibble: 6 x 3
## pais anio pbiPercap
## <fct> <int> <dbl>
## 1 Afghanistan 1952 779.
## 2 Afghanistan 1957 821.
## 3 Afghanistan 1962 853.
## 4 Afghanistan 1967 836.
## 5 Afghanistan 1972 740.
## 6 Afghanistan 1977 786.
2.2.5 Ejemplo 5
Crear una nueva tabla que contenga los datos de las tablas
ejercicio3
yejercicio4
. Deben unirse de acuerdo al pais y al anio.
Podemos utilizar la función left_join()
.
## # A tibble: 6 x 4
## pais anio espVida pbiPercap
## <fct> <int> <dbl> <dbl>
## 1 Afghanistan 1952 28.8 779.
## 2 Afghanistan 1957 30.3 821.
## 3 Afghanistan 1962 32.0 853.
## 4 Afghanistan 1967 34.0 836.
## 5 Afghanistan 1972 36.1 740.
## 6 Afghanistan 1977 38.4 786.
2.2.6 Ejemplo 6
Presentar los datos de la tabla
ejercicio1
de forma tal que esp_vida_prom, esp_vida_max y esp_vida_min sean valores de una variable llamada indicador, y los valores se encuentren en la variable valor.
Utilizamos gather()
, porque queremos transformar los datos de un formato “horizontal” a uno “vertical”.
## # A tibble: 6 x 3
## continent indicador valor
## <fct> <chr> <dbl>
## 1 Africa esp_vida_prom 54.8
## 2 Asia esp_vida_prom 70.7
## 3 Americas esp_vida_prom 73.6
## 4 Europe esp_vida_prom 77.6
## 5 Oceania esp_vida_prom 80.7
## 6 Africa esp_vida_max 76.4