A13_MAE118_MM24051

Ejercicio 1: Haciendo uso del dataframe mtcars (ya cargado en la sesión de r) resuelve los siguientes ejercicios:

A. Selecciona solo los automóviles que tienen un consumo de gasolina (mpg) mayor que 25 y un peso (wt) menor que 2.5

autos <- mtcars[mtcars$mpg > 25 & mtcars$wt < 2.5, ]
autos
##                 mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
# Fácil de recordar:
# dataframe$columna
# mtcars → nombre de la tabla
# $ → “dame algo que está dentro de”
# mpg → nombre de la columna

B. Ordena los automóviles por su potencia (hp) de forma ascendente y muestra solo las

columnas mpg, hp y wt.2

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
mtcars %>% 
  select(mpg, hp, wt) %>% 
  arrange(hp) %>% # arrange forma ascendente
  head(5)
##                 mpg hp    wt
## Honda Civic    30.4 52 1.615
## Merc 240D      24.4 62 3.190
## Toyota Corolla 33.9 65 1.835
## Fiat 128       32.4 66 2.200
## Fiat X1-9      27.3 66 1.935

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.

autos <- mtcars %>% 
  mutate(kpl = mpg * 0.4251)
# NOTA 
# mutate() → crea o modifica columnas.
# kpl = mpg * 0.4251 → crea la nueva columna kpl.
# mpg → toma el valor de consumo de cada automóvil.

# verlo 
autos %>% 
  head(5)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb     kpl
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 8.92710
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 8.92710
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 9.69228
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1 9.09714
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2 7.94937

D. Calcula la media, la mediana y la desviación estándar del consumo de gasolina (mpg) de todos los automóviles.

mtcars %>% 
  summarise(
    media = mean(mpg),
    mediana = median(mpg),
    desviacion_estandar = sd(mpg)
  )
##      media mediana desviacion_estandar
## 1 20.09062    19.2            6.026948
# Aquí summarise() sirve para resumir los datos y obtener estadísticas.

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.

mtcars %>% 
  group_by(cyl) %>% 
  summarise(media = mean(mpg),desviacion_estandar = sd(mpg))
## # A tibble: 3 × 3
##     cyl media desviacion_estandar
##   <dbl> <dbl>               <dbl>
## 1     4  26.7                4.51
## 2     6  19.7                1.45
## 3     8  15.1                2.56
# group_by(cyl) → agrupa los automóviles según tengan 4, 6 u 8 cilindros.

Ejercicio 2: instala la librería pwt10, usa el siguiente comando pwt<-pwt10::pwt10.01 para crear el dataframe pwt,

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

library(dplyr)

pwt <- pwt10::pwt10.01

pwt_latam <- pwt %>% 
  filter(isocode %in% c(
    "ARG", "BOL", "BRA", "CHL", "COL", "CRI", "CUB",
    "DOM", "ECU", "SLV", "GTM", "HND", "HTI", "JAM",
    "MEX", "NIC", "PAN", "PRY", "PER", "URY", "VEN"
  ))
# %in% significa “está dentro de” o “pertenece a”.

pwt_latam %>% 
  select(country, isocode) %>%  # isocode es la columna que contiene los códigos ISO.
  distinct() # distinct() elimina los países que aparecen repetidos.
##                                     country isocode
## ARG-1950                          Argentina     ARG
## BOL-1950   Bolivia (Plurinational State of)     BOL
## BRA-1950                             Brazil     BRA
## CHL-1950                              Chile     CHL
## COL-1950                           Colombia     COL
## CRI-1950                         Costa Rica     CRI
## DOM-1950                 Dominican Republic     DOM
## ECU-1950                            Ecuador     ECU
## GTM-1950                          Guatemala     GTM
## HND-1950                           Honduras     HND
## HTI-1950                              Haiti     HTI
## JAM-1950                            Jamaica     JAM
## MEX-1950                             Mexico     MEX
## NIC-1950                          Nicaragua     NIC
## PAN-1950                             Panama     PAN
## PER-1950                               Peru     PER
## PRY-1950                           Paraguay     PRY
## SLV-1950                        El Salvador     SLV
## URY-1950                            Uruguay     URY
## VEN-1950 Venezuela (Bolivarian Republic of)     VEN

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.

pwt_latam %>% 
  filter(year == 2019) %>% 
  summarise(
    ingreso_per_capita_promedio = mean(rgdpe / pop, na.rm = TRUE),
    capital_humano_promedio = mean(hc, na.rm = TRUE)
  )
##   ingreso_per_capita_promedio capital_humano_promedio
## 1                    13155.77                2.663226
# filter(year == 2019) → solamente toma el año 2019.
# rgdpe / pop → ingreso per cápita.
# mean() → calcula el promedio.
# na.rm = TRUE → ignora valores faltantes.

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).

pwt_latam <- pwt_latam %>% 
  mutate(
    ingreso_per_capita = rgdpe / pop,
    nivel_ingreso = case_when(
      ingreso_per_capita < 1026 ~ "Bajo",
      ingreso_per_capita >= 1026 & ingreso_per_capita <= 3995 ~ "Bajo-medio",
      ingreso_per_capita >= 3996 & ingreso_per_capita <= 12375 ~ "Medio-alto",
      ingreso_per_capita > 12375 ~ "Alto"
    )
  )
pwt_latam %>% 
  filter(year == 2019) %>% 
  group_by(nivel_ingreso) %>% 
  summarise(
    cantidad_paises = n_distinct(country)
  ) 
## # A tibble: 4 × 2
##   nivel_ingreso cantidad_paises
##   <chr>                   <int>
## 1 Alto                       10
## 2 Bajo                        1
## 3 Bajo-medio                  1
## 4 Medio-alto                  8
# case_when() sirve para crear categorías según diferentes condiciones.

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 <- pwt_latam %>%
  filter(year %in% c(2015, 2019)) %>%
  group_by(country, nivel_ingreso) %>%
  summarise(
    rgdpe_2015 = rgdpe[year == 2015][1],
    rgdpe_2019 = rgdpe[year == 2019][1],
    .groups = "drop"
  ) %>%
  mutate(
    crecimiento = ((rgdpe_2019 / rgdpe_2015)^(1/4) - 1) * 100
  )

crecimiento %>%
  group_by(nivel_ingreso) %>%
  summarise(
    crecimiento_promedio = mean(crecimiento, na.rm = TRUE)
  )
## # A tibble: 4 × 2
##   nivel_ingreso crecimiento_promedio
##   <chr>                        <dbl>
## 1 Alto                          2.60
## 2 Bajo                        NaN   
## 3 Bajo-medio                   -2.86
## 4 Medio-alto                    2.68