Author

Kevin Carrasco

1 Cargar paquetes

Code
pacman::p_load(sjlabelled,
               dplyr, #Manipulacion de datos
              stargazer, #Tablas
              sjmisc, # Tablas
              summarytools, # Tablas
              kableExtra, #Tablas
              sjPlot, #Tablas y gráficos
              corrplot, # Correlaciones
              sessioninfo, # Información de la sesión de trabajo
              ggplot2) # Para la mayoría de los gráficos

2 Cargar bases de datos

Cargamos ambas bases de datos desde internet

Code
load(url("https://github.com/Kevin-carrasco/R-data-analisis/raw/main/files/data/latinobarometro_total.RData")) #Cargar base de datos
load(url("https://github.com/Kevin-carrasco/R-data-analisis/raw/main/files/data/data_wvs.RData")) #Cargar base de datos

Para trabajar con ambas bases, agruparemos las variables de interés por país, por lo que ya no trabajaremos directamente con individuos.

Code
context_data <- wvs %>% group_by(B_COUNTRY) %>% # Agrupar por país
  summarise(gdp = mean(GDPpercap1, na.rm = TRUE), # Promedio de GDP per capita
         life_exp = mean(lifeexpect, na.rm = TRUE), # Promedio esperanza de vida
         gini = mean(giniWB, na.rm = TRUE)) %>%  # Promedio gini
  rename(idenpa=B_COUNTRY) # Para poder vincular ambas bases, es necesario que la variable de identificación se llamen igual
context_data$idenpa <- as.numeric(context_data$idenpa) # Como era categórica, la dejamos numérica

proc_data <- proc_data %>% group_by(idenpa) %>%  # agrupamos por país
  summarise(promedio = mean(conf_inst, na.rm = TRUE)) # promedio de confianza en instituciones por país

3 Unir bases de datos

Para vincular nuestras bases de datos existen múltiples opciones, la primera es ‘merge’ de R base y las siguientes tres vienen desde dplyr: ‘right_join’, ‘full_join’ y ‘left_join’. Cada una tiene sus propias potencialidades y limitaciones y dependerá de cada caso cuál usemos

3.0.1 Probemos merge

Code
data <- merge(proc_data, context_data, by="idenpa")
Code
data <- data %>%
  mutate(idenpa = as.character(idenpa)) %>%
  mutate(idenpa = case_when(
    idenpa == "32" ~ "Argentina",
    idenpa == "68" ~ "Bolivia",
    idenpa == "76" ~ "Brasil",
    idenpa == "152" ~ "Chile",
    idenpa == "170" ~ "Colombia",
    idenpa == "188" ~ "Costa Rica",
    idenpa == "214" ~ "Cuba",
    idenpa == "218" ~ "República Dominicana",
    idenpa == "222" ~ "Ecuador",
    idenpa == "320" ~ "El Salvador",
    idenpa == "340" ~ "Guatemala",
    idenpa == "484" ~ "Honduras",
    idenpa == "558" ~ "México",
    idenpa == "591" ~ "Nicaragua",
    idenpa == "600" ~ "Panamá",
    idenpa == "604" ~ "Paraguay",
    idenpa == "858" ~ "Uruguay",
    idenpa == "862" ~ "Venezuela"))

data$gdp <- as.numeric(data$gdp)
data$gdp[data$gdp==0] <- NA
data <- na.omit(data)

4 Visualizaciones

4.1 Descriptivos

Code
sjmisc::descr(data,
      show = c("label","range", "mean", "sd", "NA.prc", "n"))%>% # Selecciona estadísticos
      kable(.,"markdown") # Esto es para que se vea bien en quarto
var label n NA.prc mean sd range
4 promedio promedio 11 0 3.40077 1.016976 3.59 (2.3-5.9)
1 gdp gdp 11 0 15528.18364 6480.045512 19523.79 (5631.2-25154.99)
3 life_exp life_exp 11 0 75.90909 2.286593 8.8 (71.24-80.04)
2 gini gini 11 0 45.46364 4.156266 14.2 (39.7-53.9)

4.2 otra opción

Code
view(dfSummary(data, headings=FALSE))
Switching method to 'browser'
Output file written: C:\Users\kevin\AppData\Local\Temp\RtmpANQGGD\file56d43297469d.html

5 Gráficos

Code
ggplot(data, aes(x = idenpa, y = gdp)) +
  geom_point() +
  labs(x = "País", y = "Gdp") +
  theme_minimal()+
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Code
data_sorted <- data %>% arrange(desc(gdp))
ggplot(data_sorted, aes(x = factor(idenpa, levels = idenpa), y = gdp)) +
  geom_point() +
  labs(x = "País", y = "GDP") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Y comparar el promedio de confianza en instituciones según producto interno bruto por país?

Code
data %>%
  ggplot(aes(x = gdp, y = promedio, label = idenpa)) +
  geom_point() +
  geom_text(vjust = -0.5) +
  labs(x = "GDP", y = "Promedio") +
  theme_bw()