A13-Ejercicio Basico de dlyr

Librerias

library(dplyr)
library(tibble)

Ejercicio 1: dataframe mtcars

data("mtcars")
mtcars <- mtcars %>% rownames_to_column(var = "modelo")
head(mtcars)
##              modelo  mpg cyl disp  hp drat    wt  qsec vs am gear carb
## 1         Mazda RX4 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## 2     Mazda RX4 Wag 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## 3        Datsun 710 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## 4    Hornet 4 Drive 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## 5 Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## 6           Valiant 18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

Literal A

automovil<-mtcars %>%
  filter(mpg>25, wt<2.5) %>%
 select(modelo, mpg, wt)
print(automovil)
##           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

ordenar_autos<- mtcars %>%
  arrange(hp)%>%
  select(modelo, mpg, hp, wt)
print(ordenar_autos)
##                 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
## 7           Datsun 710 22.8  93 2.320
## 8             Merc 230 22.8  95 3.150
## 9        Toyota Corona 21.5  97 2.465
## 10             Valiant 18.1 105 3.460
## 11          Volvo 142E 21.4 109 2.780
## 12           Mazda RX4 21.0 110 2.620
## 13       Mazda RX4 Wag 21.0 110 2.875
## 14      Hornet 4 Drive 21.4 110 3.215
## 15        Lotus Europa 30.4 113 1.513
## 16            Merc 280 19.2 123 3.440
## 17           Merc 280C 17.8 123 3.440
## 18    Dodge Challenger 15.5 150 3.520
## 19         AMC Javelin 15.2 150 3.435
## 20   Hornet Sportabout 18.7 175 3.440
## 21    Pontiac Firebird 19.2 175 3.845
## 22        Ferrari Dino 19.7 175 2.770
## 23          Merc 450SE 16.4 180 4.070
## 24          Merc 450SL 17.3 180 3.730
## 25         Merc 450SLC 15.2 180 3.780
## 26  Cadillac Fleetwood 10.4 205 5.250
## 27 Lincoln Continental 10.4 215 5.424
## 28   Chrysler Imperial 14.7 230 5.345
## 29          Duster 360 14.3 245 3.570
## 30          Camaro Z28 13.3 245 3.840
## 31      Ford Pantera L 15.8 264 3.170
## 32       Maserati Bora 15.0 335 3.570

Literal C

autos_transformados<-mtcars %>%
  mutate( kpl = mpg * 0.4251) %>% # 1 mpg equivale a 0.4251 kpl
  select(modelo, mpg, kpl)
print(autos_transformados)
##                 modelo  mpg      kpl
## 1            Mazda RX4 21.0  8.92710
## 2        Mazda RX4 Wag 21.0  8.92710
## 3           Datsun 710 22.8  9.69228
## 4       Hornet 4 Drive 21.4  9.09714
## 5    Hornet Sportabout 18.7  7.94937
## 6              Valiant 18.1  7.69431
## 7           Duster 360 14.3  6.07893
## 8            Merc 240D 24.4 10.37244
## 9             Merc 230 22.8  9.69228
## 10            Merc 280 19.2  8.16192
## 11           Merc 280C 17.8  7.56678
## 12          Merc 450SE 16.4  6.97164
## 13          Merc 450SL 17.3  7.35423
## 14         Merc 450SLC 15.2  6.46152
## 15  Cadillac Fleetwood 10.4  4.42104
## 16 Lincoln Continental 10.4  4.42104
## 17   Chrysler Imperial 14.7  6.24897
## 18            Fiat 128 32.4 13.77324
## 19         Honda Civic 30.4 12.92304
## 20      Toyota Corolla 33.9 14.41089
## 21       Toyota Corona 21.5  9.13965
## 22    Dodge Challenger 15.5  6.58905
## 23         AMC Javelin 15.2  6.46152
## 24          Camaro Z28 13.3  5.65383
## 25    Pontiac Firebird 19.2  8.16192
## 26           Fiat X1-9 27.3 11.60523
## 27       Porsche 914-2 26.0 11.05260
## 28        Lotus Europa 30.4 12.92304
## 29      Ford Pantera L 15.8  6.71658
## 30        Ferrari Dino 19.7  8.37447
## 31       Maserati Bora 15.0  6.37650
## 32          Volvo 142E 21.4  9.09714

Literal D

resumen <- mtcars %>%
  summarise(media_mpg   = mean(mpg),
            mediana_mpg = median(mpg),
            sd_mpg      = sd(mpg))
print(resumen)
##   media_mpg mediana_mpg   sd_mpg
## 1  20.09062        19.2 6.026948

Literal E

resumen_cyl <- mtcars %>%
  group_by(cyl) %>%
  summarise(media_mpg  = mean(mpg),
            sd_mpg     = sd(mpg),
            .groups    = "drop" )
print(resumen_cyl)
## # A tibble: 3 × 3
##     cyl media_mpg sd_mpg
##   <dbl>     <dbl>  <dbl>
## 1     4      26.7   4.51
## 2     6      19.7   1.45
## 3     8      15.1   2.56

Ejercicio 2: dataframe pwt10

Comando

pwt<- pwt10::pwt10.0
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

paises_latam <- c("ARG", "BOL", "BRA", "CHL", "COL", "CRI", "CUB","DOM", "ECU", "SLV", "GTM", "HND", "MEX", "NIC","PAN", "PRY", "PER", "URY", "VEN")

pwt_latam <- pwt %>%
  filter(isocode %in% paises_latam)
pwt_latam %>% distinct(isocode, country)
##          isocode                            country
## ARG-1950     ARG                          Argentina
## BOL-1950     BOL   Bolivia (Plurinational State of)
## BRA-1950     BRA                             Brazil
## CHL-1950     CHL                              Chile
## COL-1950     COL                           Colombia
## CRI-1950     CRI                         Costa Rica
## DOM-1950     DOM                 Dominican Republic
## ECU-1950     ECU                            Ecuador
## GTM-1950     GTM                          Guatemala
## HND-1950     HND                           Honduras
## MEX-1950     MEX                             Mexico
## NIC-1950     NIC                          Nicaragua
## PAN-1950     PAN                             Panama
## PER-1950     PER                               Peru
## PRY-1950     PRY                           Paraguay
## SLV-1950     SLV                        El Salvador
## URY-1950     URY                            Uruguay
## VEN-1950     VEN Venezuela (Bolivarian Republic of)

Literal B

resumen_2019 <- pwt_latam %>%
  filter(year==2019)%>%
  summarise(ingreso_percapita_prom  =mean(rgdpe/pop),
            capital_human_prom = mean(hc))
print(resumen_2019)
##   ingreso_percapita_prom capital_human_prom
## 1               14024.32           2.718799

Literal C

pwt_latam_clasificado <- 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(isocode, country, ingreso_percapita, nivel_ingreso)%>% 
  arrange(nivel_ingreso, desc(ingreso_percapita))
print(pwt_latam_clasificado)
##          isocode                            country ingreso_percapita
## PAN-2019     PAN                             Panama         29540.888
## CHL-2019     CHL                              Chile         23582.794
## ARG-2019     ARG                          Argentina         22114.713
## URY-2019     URY                            Uruguay         21206.487
## MEX-2019     MEX                             Mexico         19290.827
## CRI-2019     CRI                         Costa Rica         19227.795
## DOM-2019     DOM                 Dominican Republic         17765.905
## BRA-2019     BRA                             Brazil         14629.600
## COL-2019     COL                           Colombia         13809.437
## PER-2019     PER                               Peru         12404.642
## VEN-2019     VEN Venezuela (Bolivarian Republic of)           252.224
## PRY-2019     PRY                           Paraguay         12131.515
## ECU-2019     ECU                            Ecuador         11226.779
## BOL-2019     BOL   Bolivia (Plurinational State of)          8625.341
## SLV-2019     SLV                        El Salvador          8330.070
## GTM-2019     GTM                          Guatemala          7921.363
## HND-2019     HND                           Honduras          5289.184
## NIC-2019     NIC                          Nicaragua          5088.126
##          nivel_ingreso
## PAN-2019          Alto
## CHL-2019          Alto
## ARG-2019          Alto
## URY-2019          Alto
## MEX-2019          Alto
## CRI-2019          Alto
## DOM-2019          Alto
## BRA-2019          Alto
## COL-2019          Alto
## PER-2019          Alto
## VEN-2019          Bajo
## PRY-2019    Medio-alto
## ECU-2019    Medio-alto
## BOL-2019    Medio-alto
## SLV-2019    Medio-alto
## GTM-2019    Medio-alto
## HND-2019    Medio-alto
## NIC-2019    Medio-alto

Literal D

crecimiento_pib <- pwt_latam %>%
  filter(year %in% c(2015, 2019)) %>%
  select(isocode, country, year, rgdpe) %>%
  tidyr::pivot_wider(names_from = year, values_from = rgdpe,
                      names_prefix = "rgdpe_") %>%
  mutate(crecimiento_pib = (rgdpe_2019 - rgdpe_2015) / rgdpe_2015 * 100)

crecimiento_por_grupo <- crecimiento_pib %>%
  left_join( pwt_latam_clasificado %>% select(isocode, nivel_ingreso),
    by = "isocode") %>%
  group_by(nivel_ingreso) %>%
  summarise(crecimiento_promedio_pib = mean(crecimiento_pib),
            .groups = "drop")
print(crecimiento_por_grupo)
## # A tibble: 3 × 2
##   nivel_ingreso crecimiento_promedio_pib
##   <chr>                            <dbl>
## 1 Alto                              11.2
## 2 Bajo                             -95.3
## 3 Medio-alto                        11.6