##
## 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
library(tibble)
library(stringr)
library(tidyr)
library(pwt10)
Autos <- mtcars |>
rownames_to_column(var = "Modelo")
head(Autos)
## 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
EJERCICIO 1
A
Autos |>
filter(mpg>25, wt<2.5)
## Modelo mpg cyl disp hp drat wt qsec vs am gear carb
## 1 Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
## 2 Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
## 3 Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
## 4 Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
## 5 Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
## 6 Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
B
Autos |>
select(mpg, hp, wt) |>
arrange(hp) |>
head(6)
## mpg hp wt
## 1 30.4 52 1.615
## 2 24.4 62 3.190
## 3 33.9 65 1.835
## 4 32.4 66 2.200
## 5 27.3 66 1.935
## 6 26.0 91 2.140
C
Autos |>
select(Modelo, mpg, hp, wt) |>
mutate(
kpl = mpg * 0.425144) |>
head(5)
## Modelo mpg hp wt kpl
## 1 Mazda RX4 21.0 110 2.620 8.928024
## 2 Mazda RX4 Wag 21.0 110 2.875 8.928024
## 3 Datsun 710 22.8 93 2.320 9.693283
## 4 Hornet 4 Drive 21.4 110 3.215 9.098082
## 5 Hornet Sportabout 18.7 175 3.440 7.950193
D
Autos |>
select(Modelo, mpg, hp, wt) |>
summarise(
Media = mean(mpg),
Mediana = median(mpg),
Desviacion_Estandar = sd(mpg)
)
## Media Mediana Desviacion_Estandar
## 1 20.09062 19.2 6.026948
E
Ordenados_por_num_de_cilindros <- Autos |>
group_by(cyl) |>
summarise(
Total_filtro = n(),
Media = mean(mpg),
Mediana = median(mpg),
Desviacion_Estandar = sd(mpg)
) |>
arrange(cyl)
head(Ordenados_por_num_de_cilindros)
## # A tibble: 3 × 5
## cyl Total_filtro Media Mediana Desviacion_Estandar
## <dbl> <int> <dbl> <dbl> <dbl>
## 1 4 11 26.7 26 4.51
## 2 6 7 19.7 19.7 1.45
## 3 8 14 15.1 15.2 2.56
EJERCICIO 2
A
pwt_latam <- pwt |>
select(country, isocode) |>
filter(isocode %in% c(
"ARG", "BOL", "BRA", "CHL", "COL", "CRI", "CUB", "DOM", "ECU",
"SLV", "GTM", "HND", "MEX", "NIC", "PAN", "PRY", "PER", "URY", "VEN"
))
head(pwt_latam)
## country isocode
## ARG-1950 Argentina ARG
## ARG-1951 Argentina ARG
## ARG-1952 Argentina ARG
## ARG-1953 Argentina ARG
## ARG-1954 Argentina ARG
## ARG-1955 Argentina ARG
B
pwt_latam_2019 <- pwt |>
# 1. Filtrar por los países de Latam y el año 2019
filter(
isocode %in% c("ARG", "BOL", "BRA", "CHL", "COL", "CRI", "CUB", "DOM", "ECU", "SLV", "GTM", "HND", "MEX", "NIC", "PAN", "PRY", "PER", "URY", "VEN"),
year == 2019
) |>
# 2. Calcular el ingreso per cápita para cada país antes de promediar
mutate(ingreso_pc = rgdpe / pop) |>
# 3. Calcular los promedios generales de la región
summarise(
Ingreso_Per_Capita_Promedio = mean(ingreso_pc, na.rm = TRUE),
Capital_Humano_Promedio = mean(hc, na.rm = TRUE)
)
print(pwt_latam_2019)
## Ingreso_Per_Capita_Promedio Capital_Humano_Promedio
## 1 14035.52 2.718799
C
pwt_clasificacion <- pwt |>
filter(
isocode %in% c("ARG", "BOL", "BRA", "CHL", "COL", "CRI", "CUB", "DOM", "ECU", "SLV", "GTM", "HND", "MEX", "NIC", "PAN", "PRY", "PER", "URY", "VEN"),
year == 2019) |>
mutate(ingreso_pc = rgdpe / pop) |>
# Creando la clasificación del Banco Mundial usando case_when
mutate(
Nivel_Ingreso = case_when(
ingreso_pc < 1026 ~ "bajo",
ingreso_pc >= 1026 & ingreso_pc <= 3995 ~ "bajo-medio",
ingreso_pc >= 3996 & ingreso_pc <= 12375 ~ "medio-alto",
ingreso_pc > 12375 ~ "alto")
) |>
# Seleccionando las columnas clave para ver el resultado
select(country, isocode, ingreso_pc, Nivel_Ingreso)
print(pwt_clasificacion)
## country isocode ingreso_pc Nivel_Ingreso
## ARG-2019 Argentina ARG 22144.5136 alto
## BOL-2019 Bolivia (Plurinational State of) BOL 8628.5914 medio-alto
## BRA-2019 Brazil BRA 14637.6708 alto
## CHL-2019 Chile CHL 23595.7012 alto
## COL-2019 Colombia COL 13819.8515 alto
## CRI-2019 Costa Rica CRI 19249.1699 alto
## DOM-2019 Dominican Republic DOM 17766.4031 alto
## ECU-2019 Ecuador ECU 11238.1838 medio-alto
## GTM-2019 Guatemala GTM 7919.7622 medio-alto
## HND-2019 Honduras HND 5296.0503 medio-alto
## MEX-2019 Mexico MEX 19308.0740 alto
## NIC-2019 Nicaragua NIC 5100.6502 medio-alto
## PAN-2019 Panama PAN 29586.3432 alto
## PER-2019 Peru PER 12412.8182 alto
## PRY-2019 Paraguay PRY 12135.0996 medio-alto
## SLV-2019 El Salvador SLV 8331.2985 medio-alto
## URY-2019 Uruguay URY 21217.8348 alto
## VEN-2019 Venezuela (Bolivarian Republic of) VEN 251.3191 bajo
D
# 1. Obtener la clasificación del 2019 de forma directa
pwt_base <- pwt |>
filter(isocode %in% c("ARG", "BOL", "BRA", "CHL", "COL", "CRI", "CUB", "DOM", "ECU",
"SLV", "GTM", "HND", "MEX", "NIC", "PAN", "PRY", "PER", "URY", "VEN"))
clasificacion <- pwt_base |>
filter(year == 2019) |>
mutate(
ingreso_pc = rgdpe / pop,
Nivel_Ingreso = case_when(
ingreso_pc < 1026 ~ "bajo",
ingreso_pc >= 1026 & ingreso_pc <= 3995 ~ "bajo-medio",
ingreso_pc >= 3996 & ingreso_pc <= 12375 ~ "medio-alto",
ingreso_pc > 12375 ~ "alto"
)
) |>
select(isocode, Nivel_Ingreso)
# 2. Separar los años manualmente sin usar funciones conflictivas
pib_2015 <- pwt_base |> filter(year == 2015) |> select(isocode, rgdpe_2015 = rgdpe)
pib_2019 <- pwt_base |> filter(year == 2019) |> select(isocode, rgdpe_2019 = rgdpe)
# 3. Juntar todo y calcular
Resultado_Final <- pib_2015 |>
merge(pib_2019, by = "isocode") |>
merge(clasificacion, by = "isocode") |>
mutate(Crecimiento = (rgdpe_2019 - rgdpe_2015) / rgdpe_2015) |>
aggregate(Crecimiento ~ Nivel_Ingreso, data = _, FUN = mean)
# Multiplicar por 100 para ver el porcentaje
Resultado_Final$Crecimiento_Porcentaje <- Resultado_Final$Crecimiento * 100
print(Resultado_Final)
## Nivel_Ingreso Crecimiento Crecimiento_Porcentaje
## 1 alto 0.1124341 11.24341
## 2 bajo -0.9530619 -95.30619
## 3 medio-alto 0.1166740 11.66740