Ejercicios básicos sobre el uso de dplyr
Librerias a utilizar
Ejercicio 1:
Haciendo uso del dataframe mtcars (ya cargado en la sesión de r) resuelve los siguientes ejercicios:
Literal A)
Selecciona solo los automóviles que tienen un consumo de gasolina (mpg) mayor que 25 y un peso (wt) menor que 2.5
Automoviles <- mtcars %>%
rownames_to_column(var = "Modelo")
A_automoviles <- Automoviles %>%
filter(mpg > 25 & wt < 2.5) %>%
select(Modelo, mpg, wt)
head(A_automoviles)## Modelo mpg wt
## 1 Fiat 128 32.4 2.200
## 2 Honda Civic 30.4 1.615
## 3 Toyota Corolla 33.9 1.835
## 4 Fiat X1-9 27.3 1.935
## 5 Porsche 914-2 26.0 2.140
## 6 Lotus Europa 30.4 1.513
Literal B)
Ordena los automóviles por su potencia (hp) de forma ascendente y muestra solo las columnas mpg, hp y wt.
## Modelo mpg hp wt
## 1 Honda Civic 30.4 52 1.615
## 2 Merc 240D 24.4 62 3.190
## 3 Toyota Corolla 33.9 65 1.835
## 4 Fiat 128 32.4 66 2.200
## 5 Fiat X1-9 27.3 66 1.935
## 6 Porsche 914-2 26.0 91 2.140
Literal C)
Crea una nueva columna llamada kpl, que contenga el consumo de gasolina en kilómetros por litro, sabiendo que 1 mpg equivale a 0.4251 kpl.
C_automoviles <- Automoviles %>%
select(Modelo, mpg, wt, hp) %>%
mutate(Kpl = mpg * 0.4251)
head(C_automoviles)## Modelo mpg wt hp Kpl
## 1 Mazda RX4 21.0 2.620 110 8.92710
## 2 Mazda RX4 Wag 21.0 2.875 110 8.92710
## 3 Datsun 710 22.8 2.320 93 9.69228
## 4 Hornet 4 Drive 21.4 3.215 110 9.09714
## 5 Hornet Sportabout 18.7 3.440 175 7.94937
## 6 Valiant 18.1 3.460 105 7.69431
Literal D)
Calcula la media, la mediana y la desviación estándar del consumo de gasolina (mpg) de todos los automóviles.
D_automoviles <- Automoviles %>%
summarise(Media = mean(mpg),
Mediana = median(mpg),
Desviacion_estandar = sd(mpg),
Total_autos = n())
head(D_automoviles)## Media Mediana Desviacion_estandar Total_autos
## 1 20.09062 19.2 6.026948 32
Literal E)
Agrupa los automóviles por el número de cilindros (cyl) y calcula la media y la desviación estándar del consumo de gasolina (mpg) por cada grupo.
E_automoviles <- Automoviles %>%
group_by(cyl) %>%
summarise(Total_modelos = n(),
Media = mean(mpg),
Desviacion_estandar = sd(mpg))
head(E_automoviles)## # A tibble: 3 × 4
## cyl Total_modelos Media Desviacion_estandar
## <dbl> <int> <dbl> <dbl>
## 1 4 11 26.7 4.51
## 2 6 7 19.7 1.45
## 3 8 14 15.1 2.56
Ejercicio 2
Instala la librería pwt10, usa el siguiente comando pwt<-pwt10::pwt10.01 para crear el dataframe pwt,
## country isocode year currency rgdpe rgdpo pop emp avh hc ccon
## ABW-1950 Aruba ABW 1950 Aruban Guilder NA NA NA NA NA NA NA
## ABW-1951 Aruba ABW 1951 Aruban Guilder NA NA NA NA NA NA NA
## ABW-1952 Aruba ABW 1952 Aruban Guilder NA NA NA NA NA NA NA
## ABW-1953 Aruba ABW 1953 Aruban Guilder NA NA NA NA NA NA NA
## ABW-1954 Aruba ABW 1954 Aruban Guilder NA NA NA NA NA NA NA
## ABW-1955 Aruba ABW 1955 Aruban Guilder NA NA NA NA NA NA NA
## cda cgdpe cgdpo cn ck ctfp cwtfp rgdpna rconna rdana rnna rkna rtfpna
## ABW-1950 NA NA NA NA NA NA NA NA NA NA NA NA NA
## ABW-1951 NA NA NA NA NA NA NA NA NA NA NA NA NA
## ABW-1952 NA NA NA NA NA NA NA NA NA NA NA NA NA
## ABW-1953 NA NA NA NA NA NA NA NA NA NA NA NA NA
## ABW-1954 NA NA NA NA NA NA NA NA NA NA NA NA NA
## ABW-1955 NA NA NA NA NA NA NA NA NA NA NA NA NA
## rwtfpna labsh irr delta xr pl_con pl_da pl_gdpo i_cig i_xm i_xr
## ABW-1950 NA NA NA NA NA NA NA NA <NA> <NA> <NA>
## ABW-1951 NA NA NA NA NA NA NA NA <NA> <NA> <NA>
## ABW-1952 NA NA NA NA NA NA NA NA <NA> <NA> <NA>
## ABW-1953 NA NA NA NA NA NA NA NA <NA> <NA> <NA>
## ABW-1954 NA NA NA NA NA NA NA NA <NA> <NA> <NA>
## ABW-1955 NA NA NA NA NA NA NA NA <NA> <NA> <NA>
## i_outlier i_irr cor_exp statcap csh_c csh_i csh_g csh_x csh_m csh_r
## ABW-1950 <NA> <NA> NA NA NA NA NA NA NA NA
## ABW-1951 <NA> <NA> NA NA NA NA NA NA NA NA
## ABW-1952 <NA> <NA> NA NA NA NA NA NA NA NA
## ABW-1953 <NA> <NA> NA NA NA NA NA NA NA NA
## ABW-1954 <NA> <NA> NA NA NA NA NA NA NA NA
## ABW-1955 <NA> <NA> NA NA NA NA NA NA NA NA
## pl_c pl_i pl_g pl_x pl_m pl_n pl_k
## ABW-1950 NA NA NA NA NA NA NA
## ABW-1951 NA NA NA NA NA NA NA
## ABW-1952 NA NA NA NA NA NA NA
## ABW-1953 NA NA NA NA NA NA NA
## ABW-1954 NA NA NA NA NA NA NA
## ABW-1955 NA NA NA NA NA NA NA
Literal A)
Seleccionar solo los países que pertenecen a América Latina. Puedes usar el código ISO de tres letras para identificarlos. Por ejemplo, el código de El Salvador es SLV. Guarda los resultados en el objeto pwt_latam
codigos_latam <- c("ARG", "BOL", "BRA", "CHL", "COL", "CRI", "CUB", "DOM",
"ECU", "GTM", "HND", "HTI", "MEX", "NIC", "PAN", "PER",
"PRY", "SLV", "URY", "VEN")
pwt_latam <- pwt %>%
filter(isocode %in% codigos_latam)
head(pwt_latam)## country isocode year currency rgdpe rgdpo pop
## ARG-1950 Argentina ARG 1950 Argentine Peso 50303.95 50108.76 17.09182
## ARG-1951 Argentina ARG 1951 Argentine Peso 52677.96 51339.17 17.45758
## ARG-1952 Argentina ARG 1952 Argentine Peso 47677.21 46855.10 17.81597
## ARG-1953 Argentina ARG 1953 Argentine Peso 49529.67 49917.15 18.16862
## ARG-1954 Argentina ARG 1954 Argentine Peso 51835.38 52254.77 18.51717
## ARG-1955 Argentina ARG 1955 Argentine Peso 56628.43 56072.50 18.86324
## emp avh hc ccon cda cgdpe cgdpo
## ARG-1950 6.608833 2034.000 1.816503 43743.46 48022.83 49204.30 50511.77
## ARG-1951 6.713252 2037.867 1.830769 44728.54 51221.76 51548.03 51700.11
## ARG-1952 6.819321 2041.741 1.845147 42317.23 47927.18 46790.66 47280.33
## ARG-1953 6.927065 2045.622 1.859638 42263.66 48224.32 48639.14 50378.67
## ARG-1954 7.036511 2049.511 1.874243 45478.02 51166.22 50798.35 52633.07
## ARG-1955 7.147688 2053.407 1.888963 49945.27 56265.33 55253.88 56270.61
## cn ck ctfp cwtfp rgdpna rconna rdana
## ARG-1950 57091.52 NA NA NA 196688.5 146144.5 156731.9
## ARG-1951 62726.13 NA NA NA 208305.2 149824.8 171590.5
## ARG-1952 67185.02 NA NA NA 195898.2 141676.2 159190.9
## ARG-1953 71564.65 NA NA NA 204164.9 141119.5 160590.8
## ARG-1954 75800.47 0.005783468 0.7171618 0.6967875 210812.6 151859.8 169543.1
## ARG-1955 80596.41 0.005960498 0.7152358 0.7146051 225537.5 166968.0 187097.1
## rnna rkna rtfpna rwtfpna labsh irr delta
## ARG-1950 309057.0 NA NA NA 0.4410236 0.3081208 0.02762875
## ARG-1951 339337.8 NA NA NA 0.4410236 0.3563035 0.02806184
## ARG-1952 361792.5 NA NA NA 0.4410236 0.3098073 0.02858521
## ARG-1953 385867.2 NA NA NA 0.4410236 0.3069586 0.02876815
## ARG-1954 407615.8 0.1169974 1.195033 0.9557823 0.4410236 0.2942766 0.02881225
## ARG-1955 433093.8 0.1245309 1.220924 1.0072385 0.4410236 0.3133069 0.02898156
## xr pl_con pl_da pl_gdpo i_cig i_xm
## ARG-1950 9.160471e-13 0.2003557 0.2201716 0.2144727 extrapolated extrapolated
## ARG-1951 1.155473e-12 0.2196224 0.2382914 0.2375904 extrapolated extrapolated
## ARG-1952 1.388057e-12 0.2358658 0.2511577 0.2485565 extrapolated extrapolated
## ARG-1953 1.497827e-12 0.2386490 0.2549080 0.2461062 extrapolated extrapolated
## ARG-1954 1.603108e-12 0.2384415 0.2543599 0.2454932 extrapolated extrapolated
## ARG-1955 1.752513e-12 0.2395951 0.2545100 0.2499114 extrapolated extrapolated
## i_xr i_outlier i_irr cor_exp statcap csh_c csh_i
## ARG-1950 estimated yes regular NA NA 0.7870902 0.08472027
## ARG-1951 estimated yes regular NA NA 0.7872916 0.12559384
## ARG-1952 estimated yes regular NA NA 0.8111964 0.11865280
## ARG-1953 estimated yes regular NA NA 0.7618229 0.11831713
## ARG-1954 estimated yes regular NA NA 0.7869102 0.10807282
## ARG-1955 estimated yes regular NA NA 0.8115221 0.11231538
## csh_g csh_x csh_m csh_r pl_c pl_i
## ARG-1950 0.07891510 0.12253962 -0.06042295 -0.01284226 0.1930672 0.4227295
## ARG-1951 0.07786204 0.10049741 -0.07477643 -0.01646856 0.2138619 0.3668930
## ARG-1952 0.08383197 0.07784671 -0.05837962 -0.03314824 0.2296052 0.3665081
## ARG-1953 0.07709671 0.10670915 -0.04178465 -0.02216130 0.2308601 0.3701914
## ARG-1954 0.07714751 0.10859370 -0.05152481 -0.02919950 0.2296841 0.3816291
## ARG-1955 0.07606866 0.09155604 -0.05737847 -0.03408369 0.2312917 0.3723776
## pl_g pl_x pl_m pl_n pl_k
## ARG-1950 0.2730502 0.11766465 0.10781403 0.3044965 NA
## ARG-1951 0.2778692 0.14225884 0.11875489 0.2758175 NA
## ARG-1952 0.2964466 0.12629686 0.13069408 0.2793818 NA
## ARG-1953 0.3156136 0.11086346 0.10236239 0.2784230 NA
## ARG-1954 0.3277680 0.09400692 0.09351037 0.2851585 8.819025
## ARG-1955 0.3281777 0.10950953 0.10601742 0.2759877 8.312359
Literal B)
Calcula el ingreso per cápita promedio (rgdpe/pop) y el índice de capital humano promedio (hc) de los países latinoamericanos en el año 2019.
Promedio <- pwt_latam %>%
filter(year == 2019) %>%
summarise(Ingreso_percapita_promedio = mean(rgdpe / pop),
Indice_de_capital_humano_promedio = mean(hc, na.rm = TRUE))
head(Promedio)## Ingreso_percapita_promedio Indice_de_capital_humano_promedio
## 1 13377.38 2.666578
Literal C)
Agrupa los países latinoamericanos por su nivel de ingreso según el Banco Mundial. Puedes usar la siguiente clasificación: bajo (menos de 1026 USD), bajo-medio (entre 1026 y 3995 USD), medio-alto (entre 3996 y 12375 USD) y alto (más de 12375 USD).
Ingreso_latam <- pwt_latam %>%
filter(year == 2019) %>%
mutate(Ingreso_percapita = rgdpe / pop,
Nivel_ingreso = case_when(Ingreso_percapita < 1026 ~ "Bajo",
Ingreso_percapita >= 1026 & Ingreso_percapita <= 3995 ~ "Bajo-medio",
Ingreso_percapita >= 3996 & Ingreso_percapita <= 12375 ~ "Medio-alto",
Ingreso_percapita > 12375 ~ "Alto")) %>%
select(year, country, isocode, rgdpe, Ingreso_percapita, Nivel_ingreso)
head(Ingreso_latam)## year country isocode rgdpe
## ARG-2019 2019 Argentina ARG 991646.31
## BOL-2019 2019 Bolivia (Plurinational State of) BOL 99341.84
## BRA-2019 2019 Brazil BRA 3089273.50
## CHL-2019 2019 Chile CHL 447186.62
## COL-2019 2019 Colombia COL 695683.62
## CRI-2019 2019 Costa Rica CRI 97161.36
## Ingreso_percapita Nivel_ingreso
## ARG-2019 22144.514 Alto
## BOL-2019 8628.591 Medio-alto
## BRA-2019 14637.671 Alto
## CHL-2019 23595.701 Alto
## COL-2019 13819.851 Alto
## CRI-2019 19249.170 Alto
Literal D)
Calcula el crecimiento promedio del PIB real (rgdpe) por cada grupo de ingreso entre 2015 y 2019 (usa los resultados del ítem anterior).
Crecimiento <- Ingreso_latam %>%
filter(year >= 2015 & year <= 2019) %>%
group_by(Nivel_ingreso) %>%
summarise(Crecimiento_Promedio_PIBreal = mean(rgdpe))
head(Crecimiento)## # A tibble: 4 × 2
## Nivel_ingreso Crecimiento_Promedio_PIBreal
## <chr> <dbl>
## 1 Alto 857762.
## 2 Bajo 7167.
## 3 Bajo-medio 17242.
## 4 Medio-alto 94012.