#Una historia con datos 2.- Realice un análisis descriptivo de la variable ingreso trimestral.

library(readxl)
datos_enigh_examen <- read_excel("C:/Users/sugei/Downloads/datos_enigh_examen.xlsx")
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.1     ✔ stringr   1.5.2
## ✔ ggplot2   4.0.0     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.1.0     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
glimpse(datos_enigh_examen)
## Rows: 194,510
## Columns: 11
## $ folioviv    <dbl> 100013605, 100013605, 100013606, 100013606, 100017801, 100…
## $ foliohog    <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ numren      <dbl> 1, 2, 1, 3, 1, 2, 1, 1, 1, 1, 3, 1, 2, 1, 2, 1, 3, 1, 2, 4…
## $ FVH_numrem  <chr> "10001360511", "10001360512", "10001360611", "10001360613"…
## $ Entidad_cod <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ Entidad     <chr> "Aguascalientes", "Aguascalientes", "Aguascalientes", "Agu…
## $ Zona        <chr> "Centro", "Centro", "Centro", "Centro", "Centro", "Centro"…
## $ parentesco  <dbl> 101, 301, 101, 301, 101, 201, 101, 101, 101, 101, 301, 101…
## $ sexo_cod    <chr> "Mujer", "Mujer", "Hombre", "Hombre", "Hombre", "Mujer", "…
## $ edad        <dbl> 48, 17, 46, 17, 26, 26, 29, 63, 33, 60, 30, 76, 73, 74, 68…
## $ ingreso     <dbl> 6295.08, 5409.83, 21639.34, 1573.77, 23606.55, 983.60, 678…
str(datos_enigh_examen)
## tibble [194,510 × 11] (S3: tbl_df/tbl/data.frame)
##  $ folioviv   : num [1:194510] 1e+08 1e+08 1e+08 1e+08 1e+08 ...
##  $ foliohog   : num [1:194510] 1 1 1 1 1 1 1 1 1 1 ...
##  $ numren     : num [1:194510] 1 2 1 3 1 2 1 1 1 1 ...
##  $ FVH_numrem : chr [1:194510] "10001360511" "10001360512" "10001360611" "10001360613" ...
##  $ Entidad_cod: num [1:194510] 1 1 1 1 1 1 1 1 1 1 ...
##  $ Entidad    : chr [1:194510] "Aguascalientes" "Aguascalientes" "Aguascalientes" "Aguascalientes" ...
##  $ Zona       : chr [1:194510] "Centro" "Centro" "Centro" "Centro" ...
##  $ parentesco : num [1:194510] 101 301 101 301 101 201 101 101 101 101 ...
##  $ sexo_cod   : chr [1:194510] "Mujer" "Mujer" "Hombre" "Hombre" ...
##  $ edad       : num [1:194510] 48 17 46 17 26 26 29 63 33 60 ...
##  $ ingreso    : num [1:194510] 6295 5410 21639 1574 23607 ...
head(datos_enigh_examen)
## # A tibble: 6 × 11
##    folioviv foliohog numren FVH_numrem  Entidad_cod Entidad     Zona  parentesco
##       <dbl>    <dbl>  <dbl> <chr>             <dbl> <chr>       <chr>      <dbl>
## 1 100013605        1      1 10001360511           1 Aguascalie… Cent…        101
## 2 100013605        1      2 10001360512           1 Aguascalie… Cent…        301
## 3 100013606        1      1 10001360611           1 Aguascalie… Cent…        101
## 4 100013606        1      3 10001360613           1 Aguascalie… Cent…        301
## 5 100017801        1      1 10001780111           1 Aguascalie… Cent…        101
## 6 100017801        1      2 10001780112           1 Aguascalie… Cent…        201
## # ℹ 3 more variables: sexo_cod <chr>, edad <dbl>, ingreso <dbl>
tail(datos_enigh_examen)
## # A tibble: 6 × 11
##     folioviv foliohog numren FVH_numrem   Entidad_cod Entidad   Zona  parentesco
##        <dbl>    <dbl>  <dbl> <chr>              <dbl> <chr>     <chr>      <dbl>
## 1 3260770717        1      1 326077071711          32 Zacatecas Cent…        101
## 2 3260770717        1      3 326077071713          32 Zacatecas Cent…        301
## 3 3260770717        1      4 326077071714          32 Zacatecas Cent…        301
## 4 3260770718        1      1 326077071811          32 Zacatecas Cent…        101
## 5 3260770718        1      2 326077071812          32 Zacatecas Cent…        301
## 6 3260770718        1      3 326077071813          32 Zacatecas Cent…        301
## # ℹ 3 more variables: sexo_cod <chr>, edad <dbl>, ingreso <dbl>

#Analisis La base de datos cuenta con un total de 194,510 y 11 variables. Entre las variables numericas se encuentran folioviv, foliohog, numren, Entidad_cod, parentesco, edad e ingreso, mientras que en las variables de texto se encuentran FVH_numrem, Entidad, Zona y sexo_cod

3.- Realice un filtro donde el ingreso sea mayor al primer cuartil (1st Qu.) y hasta $30,000 y guárdelo en un objeto nuevo.

cuantil_1<-quantile(datos_enigh_examen$ingreso, 0.25)
cuantil_1
##     25% 
## 2373.62
summary(datos_enigh_examen$ingreso)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## 5.000e-01 2.374e+03 8.609e+03 1.378e+04 1.790e+04 1.069e+07
datos_filtrados<-datos_enigh_examen%>%
  filter(ingreso>cuantil_1, ingreso<=3000)
datos_filtrados
## # A tibble: 9,662 × 11
##     folioviv foliohog numren FVH_numrem  Entidad_cod Entidad    Zona  parentesco
##        <dbl>    <dbl>  <dbl> <chr>             <dbl> <chr>      <chr>      <dbl>
##  1 100021405        1      1 10002140511           1 Aguascali… Cent…        101
##  2 100041903        1      2 10004190312           1 Aguascali… Cent…        201
##  3 100044702        1      3 10004470213           1 Aguascali… Cent…        301
##  4 100044705        1      1 10004470511           1 Aguascali… Cent…        101
##  5 100045304        1      2 10004530412           1 Aguascali… Cent…        603
##  6 100054201        1      2 10005420112           1 Aguascali… Cent…        201
##  7 100054203        1      3 10005420313           1 Aguascali… Cent…        301
##  8 100058701        1      1 10005870111           1 Aguascali… Cent…        101
##  9 100062606        2      2 10006260622           1 Aguascali… Cent…        201
## 10 100117604        1      2 10011760412           1 Aguascali… Cent…        201
## # ℹ 9,652 more rows
## # ℹ 3 more variables: sexo_cod <chr>, edad <dbl>, ingreso <dbl>
max(datos_filtrados$ingreso)
## [1] 2999.99
min(datos_filtrados$ingreso)
## [1] 2375.4

4.- Puede realizar una selección (SELECT) de sus variables con respecto al análisis que va a realizar, así como utilizar group_by o cualquier otro verbo que hayamos visto en clase o tengan en sus diapositivas.

datos_analisis <- datos_filtrados %>%
  select(Entidad, Zona, sexo_cod, edad, ingreso) %>%
    group_by(Entidad, sexo_cod) %>%
      summarise(promedio_ingresos = mean(ingreso, na.rm = TRUE))
## `summarise()` has grouped output by 'Entidad'. You can override using the
## `.groups` argument.
datos_analisis
## # A tibble: 64 × 3
## # Groups:   Entidad [32]
##    Entidad             sexo_cod promedio_ingresos
##    <chr>               <chr>                <dbl>
##  1 Aguascalientes      Hombre               2743.
##  2 Aguascalientes      Mujer                2709.
##  3 Baja California     Hombre               2732.
##  4 Baja California     Mujer                2716.
##  5 Baja California Sur Hombre               2703.
##  6 Baja California Sur Mujer                2718.
##  7 CDMX                Hombre               2740.
##  8 CDMX                Mujer                2720.
##  9 Campeche            Hombre               2721.
## 10 Campeche            Mujer                2705.
## # ℹ 54 more rows
#Visualizaciones

grafica_datos<-ggplot(datos_analisis, aes(Entidad, promedio_ingresos))+
  geom_col(color="pink", fill="plum")+
  coord_flip()+
  labs(
    x="Entidad Federativa",
    y="Promedio de ingresos trimestrales",
    subtitle="Pesos corrientes",
    caption="Fuente: Elaboración propia con datos de la ENIGH"
  )+
  scale_y_continuous(labels = scales::comma)
grafica_datos