Ejercicios básicos sobre el uso de dplyr

Librerias a utilizar

library(dplyr)
library(tibble)
library(stringr)
library(tidyr)
library(pwt10)

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.

B_automoviles <- Automoviles %>%
  select(Modelo, mpg, hp, wt) %>%
  arrange(hp)
head(B_automoviles)
##           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,

pwt <- pwt10::pwt10.01
head(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.