La siguiente base de datos contiene información sobre el consumo de algunas sustancias psicoactivas por parte de los habitantes de calle de Bogotá censados en el año 2024. 

Habitantes de calle.xlsx

1. Cargar la base de datos

library(readxl)
## Warning: package 'readxl' was built under R version 4.3.3
hc <- read_excel("U:/Mi unidad/Métodos 1/Parciales/Habitantes de calle.xlsx")
View(head(hc))

2. Número de columnas de la base de datos

ncol(hc)
## [1] 7
dim(hc)
## [1] 10478     7

3. Número de filas de la base de datos

nrow(hc)
## [1] 10478
dim(hc)
## [1] 10478     7

4. ¿Cuántos habitantes de calle registraron vivir en la localidad de Usme?

a. Usando “table”

table(hc$LOCALIDAD)
## 
##     Antonio Nariño     Barrios Unidos               Bosa          Chapinero 
##                453                317                364                354 
##     Ciudad Bolivar           Engativá           Fontibón            Kennedy 
##                431                589                313               1005 
##      La Candelaria       Los Mártires                 NA      Puenta Aranda 
##                143               1302                971                625 
## Rafael Uribe Uribe      San Cristobal            Santafé               Suba 
##                599                282               1236                528 
##        Teusaquillo         Tunjuelito            Usaquén               Usme 
##                313                186                305                162

b. Usando “summary”

También se puede realizar con la función summary, sin embargo como la variable LOCALIDAD esta en formato carácter (texto) como resultado solo generara el número de registros que tienen información (Length: 10478)

summary(hc)
##   LOCALIDAD         H 30.0.2 Cigarrillo?
##  Length:10478       Length:10478        
##  Class :character   Class :character    
##  Mode  :character   Mode  :character    
##                                         
##                                         
##                                         
##                                         
##  H 30.0.1a Edad de inicio de consumo (Cigarrillo) H 30.0.3 Marihuana?
##  Min.   : 1.00                                    Length:10478       
##  1st Qu.:12.00                                    Class :character   
##  Median :14.00                                    Mode  :character   
##  Mean   :14.51                                                       
##  3rd Qu.:16.00                                                       
##  Max.   :63.00                                                       
##  NA's   :4809                                                        
##  H 30.0.3a Edad de inicio de consumo (Marihua)
##  Min.   : 0.00                                
##  1st Qu.:12.00                                
##  Median :15.00                                
##  Mean   :15.34                                
##  3rd Qu.:17.00                                
##  Max.   :67.00                                
##  NA's   :5532                                 
##  H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)
##  Length:10478                                             
##  Class :character                                         
##  Mode  :character                                         
##                                                           
##                                                           
##                                                           
##                                                           
##  H 30.0.4a Edad de inicio de consumo (Alcohol)
##  Min.   : 1.00                                
##  1st Qu.:12.00                                
##  Median :15.00                                
##  Mean   :16.57                                
##  3rd Qu.:18.00                                
##  Max.   :64.00                                
##  NA's   :7497

Para esto, hay que convertir la variable LOCALIDAD en factor.

str(hc$LOCALIDAD)
##  chr [1:10478] "Santafé" "Santafé" "Santafé" "Santafé" "Santafé" "Santafé" ...
hc$LOCALIDAD <- as.factor(hc$LOCALIDAD)
str(hc$LOCALIDAD)
##  Factor w/ 20 levels "Antonio Nariño",..: 15 15 15 15 15 15 15 15 15 15 ...
summary(hc$LOCALIDAD)
##     Antonio Nariño     Barrios Unidos               Bosa          Chapinero 
##                453                317                364                354 
##     Ciudad Bolivar           Engativá           Fontibón            Kennedy 
##                431                589                313               1005 
##      La Candelaria       Los Mártires                 NA      Puenta Aranda 
##                143               1302                971                625 
## Rafael Uribe Uribe      San Cristobal            Santafé               Suba 
##                599                282               1236                528 
##        Teusaquillo         Tunjuelito            Usaquén               Usme 
##                313                186                305                162

c. Usando “dplyr”

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
usme <- hc %>% 
  select(LOCALIDAD) %>%
  group_by(LOCALIDAD) %>% 
  count()

usme
## # A tibble: 20 × 2
## # Groups:   LOCALIDAD [20]
##    LOCALIDAD              n
##    <fct>              <int>
##  1 Antonio Nariño       453
##  2 Barrios Unidos       317
##  3 Bosa                 364
##  4 Chapinero            354
##  5 Ciudad Bolivar       431
##  6 Engativá             589
##  7 Fontibón             313
##  8 Kennedy             1005
##  9 La Candelaria        143
## 10 Los Mártires        1302
## 11 NA                   971
## 12 Puenta Aranda        625
## 13 Rafael Uribe Uribe   599
## 14 San Cristobal        282
## 15 Santafé             1236
## 16 Suba                 528
## 17 Teusaquillo          313
## 18 Tunjuelito           186
## 19 Usaquén              305
## 20 Usme                 162

Se puede realizar un filtro para que solo se presente el valor de Usme

library(dplyr)

usme <- hc %>% 
  select(LOCALIDAD) %>%
  group_by(LOCALIDAD) %>% 
  filter(LOCALIDAD == "Usme") %>% 
  count()

usme
## # A tibble: 1 × 2
## # Groups:   LOCALIDAD [1]
##   LOCALIDAD     n
##   <fct>     <int>
## 1 Usme        162

5. ¿Cuántas personas afirmaron consumir alcohol?

Para esto primero se debe conocer el nombre de las variables que conforman la base de datos:

names(hc)
## [1] "LOCALIDAD"                                                
## [2] "H 30.0.2 Cigarrillo?"                                     
## [3] "H 30.0.1a Edad de inicio de consumo (Cigarrillo)"         
## [4] "H 30.0.3 Marihuana?"                                      
## [5] "H 30.0.3a Edad de inicio de consumo (Marihua)"            
## [6] "H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)"
## [7] "H 30.0.4a Edad de inicio de consumo (Alcohol)"

La variable a usar sera:

H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)

a. Usando “table”

table(hc$`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`)
## 
##   NA   NO   SI 
## 1875 5529 3074

Rta: 3.074 personas afirmaron consumir alcohol

b. Usando “summary”

También se puede realizar con la función summary, sin embargo como la variable LOCALIDAD esta en formato carácter (texto) como resultado solo generara el número de registros que tienen información (Length: 10478)

str(hc$`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`)
##  chr [1:10478] "NO" "NO" "NO" "NO" "NO" "SI" "NO" "NA" "NO" "SI" "NO" "NA" ...
hc$`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)` <- as.factor(hc$`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`)
summary(hc$`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`)
##   NA   NO   SI 
## 1875 5529 3074

c. Usando “dplyr”

library(dplyr)

alcohol <- hc %>% 
  select(`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`) %>% 
  group_by(`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`) %>%   summarise(n())

alcohol
## # A tibble: 3 × 2
##   `H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)` `n()`
##   <fct>                                                       <int>
## 1 NA                                                           1875
## 2 NO                                                           5529
## 3 SI                                                           3074

6. ¿Cuál es el porcentaje de personas que empezaron a consumir alcohol a los 15 años?

a. Usando “prop.table”

addmargins(prop.table(table(hc$`H 30.0.4a Edad de inicio de consumo (Alcohol)`,hc$`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`)))
##      
##                 NA           NO           SI          Sum
##   1   0.0000000000 0.0000000000 0.0043609527 0.0043609527
##   2   0.0000000000 0.0000000000 0.0016772895 0.0016772895
##   3   0.0000000000 0.0000000000 0.0010063737 0.0010063737
##   4   0.0000000000 0.0000000000 0.0033545790 0.0033545790
##   5   0.0000000000 0.0000000000 0.0063737001 0.0063737001
##   6   0.0000000000 0.0000000000 0.0053673264 0.0053673264
##   7   0.0000000000 0.0000000000 0.0103991949 0.0103991949
##   8   0.0000000000 0.0000000000 0.0278430057 0.0278430057
##   9   0.0000000000 0.0000000000 0.0187856424 0.0187856424
##   10  0.0000000000 0.0000000000 0.0701107011 0.0701107011
##   11  0.0000000000 0.0000000000 0.0355585374 0.0355585374
##   12  0.0000000000 0.0000000000 0.0865481382 0.0865481382
##   13  0.0000000000 0.0000000000 0.0526668903 0.0526668903
##   14  0.0000000000 0.0000000000 0.0791680644 0.0791680644
##   15  0.0000000000 0.0000000000 0.1784636028 0.1784636028
##   16  0.0000000000 0.0000000000 0.0556860114 0.0556860114
##   17  0.0000000000 0.0000000000 0.0422676954 0.0422676954
##   18  0.0000000000 0.0000000000 0.0734652801 0.0734652801
##   19  0.0000000000 0.0000000000 0.0140892318 0.0140892318
##   20  0.0000000000 0.0000000000 0.0865481382 0.0865481382
##   21  0.0000000000 0.0000000000 0.0063737001 0.0063737001
##   22  0.0000000000 0.0000000000 0.0154310634 0.0154310634
##   23  0.0000000000 0.0000000000 0.0057027843 0.0057027843
##   24  0.0000000000 0.0000000000 0.0050318685 0.0050318685
##   25  0.0000000000 0.0000000000 0.0224756793 0.0224756793
##   26  0.0000000000 0.0000000000 0.0033545790 0.0033545790
##   27  0.0000000000 0.0000000000 0.0036900369 0.0036900369
##   28  0.0000000000 0.0000000000 0.0083864475 0.0083864475
##   29  0.0000000000 0.0000000000 0.0026836632 0.0026836632
##   30  0.0000000000 0.0000000000 0.0251593425 0.0251593425
##   31  0.0000000000 0.0000000000 0.0016772895 0.0016772895
##   32  0.0000000000 0.0000000000 0.0043609527 0.0043609527
##   33  0.0000000000 0.0000000000 0.0023482053 0.0023482053
##   34  0.0000000000 0.0000000000 0.0026836632 0.0026836632
##   35  0.0000000000 0.0000000000 0.0046964106 0.0046964106
##   36  0.0000000000 0.0000000000 0.0016772895 0.0016772895
##   37  0.0000000000 0.0000000000 0.0023482053 0.0023482053
##   38  0.0000000000 0.0000000000 0.0020127474 0.0020127474
##   39  0.0000000000 0.0000000000 0.0013418316 0.0013418316
##   40  0.0000000000 0.0000000000 0.0073800738 0.0073800738
##   41  0.0000000000 0.0000000000 0.0013418316 0.0013418316
##   42  0.0000000000 0.0000000000 0.0016772895 0.0016772895
##   43  0.0000000000 0.0000000000 0.0013418316 0.0013418316
##   44  0.0000000000 0.0000000000 0.0010063737 0.0010063737
##   45  0.0000000000 0.0000000000 0.0020127474 0.0020127474
##   46  0.0000000000 0.0000000000 0.0016772895 0.0016772895
##   47  0.0000000000 0.0000000000 0.0010063737 0.0010063737
##   50  0.0000000000 0.0000000000 0.0030191211 0.0030191211
##   52  0.0000000000 0.0000000000 0.0003354579 0.0003354579
##   53  0.0000000000 0.0000000000 0.0003354579 0.0003354579
##   55  0.0000000000 0.0000000000 0.0006709158 0.0006709158
##   57  0.0000000000 0.0000000000 0.0006709158 0.0006709158
##   58  0.0000000000 0.0000000000 0.0006709158 0.0006709158
##   59  0.0000000000 0.0000000000 0.0003354579 0.0003354579
##   60  0.0000000000 0.0000000000 0.0010063737 0.0010063737
##   64  0.0000000000 0.0000000000 0.0003354579 0.0003354579
##   Sum 0.0000000000 0.0000000000 1.0000000000 1.0000000000

b. Usando “dplyr”

edad <- hc %>%
  select(`H 30.0.4a Edad de inicio de consumo (Alcohol)`) %>% 
  group_by(`H 30.0.4a Edad de inicio de consumo (Alcohol)`) %>% 
  count() %>% 
  mutate(n/3074)

edad
## # A tibble: 57 × 3
## # Groups:   H 30.0.4a Edad de inicio de consumo (Alcohol) [57]
##    `H 30.0.4a Edad de inicio de consumo (Alcohol)`     n `n/3074`
##                                              <dbl> <int>    <dbl>
##  1                                               1    13 0.00423 
##  2                                               2     5 0.00163 
##  3                                               3     3 0.000976
##  4                                               4    10 0.00325 
##  5                                               5    19 0.00618 
##  6                                               6    16 0.00520 
##  7                                               7    31 0.0101  
##  8                                               8    83 0.0270  
##  9                                               9    56 0.0182  
## 10                                              10   209 0.0680  
## # ℹ 47 more rows

Guardando el valor del SI

alcohol <- table(hc$`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`)[3]

alcohol
##   SI 
## 3074
edad <- hc %>%
  select(`H 30.0.4a Edad de inicio de consumo (Alcohol)`) %>% 
  group_by(`H 30.0.4a Edad de inicio de consumo (Alcohol)`) %>% 
  count() %>% 
  mutate(n/alcohol)

edad
## # A tibble: 57 × 3
## # Groups:   H 30.0.4a Edad de inicio de consumo (Alcohol) [57]
##    `H 30.0.4a Edad de inicio de consumo (Alcohol)`     n `n/alcohol`
##                                              <dbl> <int>       <dbl>
##  1                                               1    13    0.00423 
##  2                                               2     5    0.00163 
##  3                                               3     3    0.000976
##  4                                               4    10    0.00325 
##  5                                               5    19    0.00618 
##  6                                               6    16    0.00520 
##  7                                               7    31    0.0101  
##  8                                               8    83    0.0270  
##  9                                               9    56    0.0182  
## 10                                              10   209    0.0680  
## # ℹ 47 more rows

Filtrando solo para 15 años

alcohol <- table(hc$`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`)[3]

alcohol
##   SI 
## 3074
edad <- hc %>%
  select(`H 30.0.4a Edad de inicio de consumo (Alcohol)`) %>% 
  group_by(`H 30.0.4a Edad de inicio de consumo (Alcohol)`) %>% 
  count() %>% 
  mutate(n/alcohol) %>% 
  filter(`H 30.0.4a Edad de inicio de consumo (Alcohol)`==15)

edad
## # A tibble: 1 × 3
## # Groups:   H 30.0.4a Edad de inicio de consumo (Alcohol) [1]
##   `H 30.0.4a Edad de inicio de consumo (Alcohol)`     n `n/alcohol`
##                                             <dbl> <int>       <dbl>
## 1                                              15   532       0.173

7. El siguiente resultado es parte del comando:

str(hc)
## tibble [10,478 × 7] (S3: tbl_df/tbl/data.frame)
##  $ LOCALIDAD                                                : Factor w/ 20 levels "Antonio Nariño",..: 15 15 15 15 15 15 15 15 15 15 ...
##  $ H 30.0.2 Cigarrillo?                                     : chr [1:10478] "NO" "SI" "NO" "NO" ...
##  $ H 30.0.1a Edad de inicio de consumo (Cigarrillo)         : num [1:10478] NA 25 NA NA NA NA 6 NA NA NA ...
##  $ H 30.0.3 Marihuana?                                      : chr [1:10478] "SI" "SI" "NO" "SI" ...
##  $ H 30.0.3a Edad de inicio de consumo (Marihua)            : num [1:10478] 30 25 NA 6 12 27 6 NA NA NA ...
##  $ H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico): Factor w/ 3 levels "NA","NO","SI": 2 2 2 2 2 3 2 1 2 3 ...
##  $ H 30.0.4a Edad de inicio de consumo (Alcohol)            : num [1:10478] NA NA NA NA NA 18 NA NA NA 16 ...

8. El siguiente resultado es parte del paquete DescTools comando:

library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.3
Abstract(hc)
## ────────────────────────────────────────────────────────────────────────────── 
## hc
## 
## data frame:  10478 obs. of  7 variables
##      1786 complete cases (17.0%)
## 
##   Nr  Class  ColName                                                  
##   1   fac    LOCALIDAD                                                
##                                                                       
##                                                                       
##                                                                       
##                                                                       
##                                                                       
##                                                                       
##                                                                       
##                                                                       
##                                                                       
##   2   cha    H 30.0.2 Cigarrillo?                                     
##   3   num    H 30.0.1a Edad de inicio de consumo (Cigarrillo)         
##   4   cha    H 30.0.3 Marihuana?                                      
##   5   num    H 30.0.3a Edad de inicio de consumo (Marihua)            
##   6   fac    H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)
##                                                                       
##                                                                       
##                                                                       
##   7   num    H 30.0.4a Edad de inicio de consumo (Alcohol)            
##   NAs           Levels
##      .          ...   
##                 ...   
##                 ...   
##                 ...   
##                 ...   
##                 ...   
##                 ...   
##                 ...   
##                 ...   
##                 ...   
##      .          ...   
##   4809 (45.9%)  ...   
##      .          ...   
##   5532 (52.8%)  ...   
##      .          ...   
##                 ...   
##                 ...   
##                 ...   
##   7497 (71.5%)  ...

9. Pegue y analice las gráficas para las siguientes preguntas

Desc(hc$`H 30.0.3 Marihuana?`)
## ────────────────────────────────────────────────────────────────────────────── 
## hc$`H 30.0.3 Marihuana?` (character)
## 
##   length      n    NAs unique levels  dupes
##   10'478 10'478      0      3      3      y
##          100.0%   0.0%                     
## 
##    level   freq   perc  cumfreq  cumperc
## 1     SI  5'073  48.4%    5'073    48.4%
## 2     NO  3'530  33.7%    8'603    82.1%
## 3     NA  1'875  17.9%   10'478   100.0%

  • Las personas que argumentan haber consumido marihuana son aproximadamente 5.000 lo que representa casi el 50% de los habitantes de calle censados.

  • Por otra parte, aproximadamente 3.500 hc afirman no haber consumido esta sustancia (aprox. 37%)

  • Adicionalmente, casi 2.000 no respondieron esta pregunta (~ 20%)

    Desc(hc$`H 30.0.3a Edad de inicio de consumo (Marihua)`)
    ## ────────────────────────────────────────────────────────────────────────────── 
    ## hc$`H 30.0.3a Edad de inicio de consumo (Marihua)` (numeric)
    ## 
    ##   length      n    NAs  unique     0s   mean  meanCI'
    ##   10'478  4'946  5'532      56      1  15.34   15.18
    ##           47.2%  52.8%           0.0%          15.51
    ##                                                     
    ##      .05    .10    .25  median    .75    .90     .95
    ##     8.00  10.00  12.00   15.00  17.00  20.00   25.00
    ##                                                     
    ##    range     sd  vcoef     mad    IQR   skew    kurt
    ##    67.00   5.88   0.38    4.45   5.00   2.47   12.00
    ##                                                     
    ## lowest : 0.0, 1.0 (13), 2.0 (3), 3.0 (7), 4.0 (6)
    ## highest: 58.0, 62.0 (2), 63.0, 66.0, 67.0
    ## 
    ## heap(?): remarkable frequency (16.4%) for the mode(s) (= 15)
    ## 
    ## ' 95%-CI (classic)

  • El histograma sobre la edad de inicio de consumo de marihuana muestra que la mayor frecuente es entre los 10 y 15 años, seguido por el rango entre 15 y 20 años.

  • El boxplot muestra que la mediana de la edad de inicio es 15 años. Con un rango intercuartilico de aproximadamente 5 años. Con un mínimo de 5 años y un máximo cercano a los 68 años. Se consideran edades atípicas por debajo de los 5 años y por encima de los 24.

  • La última gráfica, que representa la frecuencia relativa acumulada de la edad de inicio, indica que el 50% de los habitantes de calle censados que han consumido marihuana, iniciaron antes de los 15 años, y el 90% antes de los 20 años aproximadamente.

10. Pegue y analice las gráficas para las siguientes preguntas

Desc(hc$`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`)
## ────────────────────────────────────────────────────────────────────────────── 
## hc$`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)` (factor)
## 
##   length      n    NAs unique levels  dupes
##   10'478 10'478      0      3      3      y
##          100.0%   0.0%                     
## 
##    level   freq   perc  cumfreq  cumperc
## 1     NO  5'529  52.8%    5'529    52.8%
## 2     SI  3'074  29.3%    8'603    82.1%
## 3     NA  1'875  17.9%   10'478   100.0%

  • Se tiene que esta es una pregunta que toma 3 valores (levels: 3), los cuales son SI, NO y NA.

  • De los 10.478 habitantes de calle censados, se tiene que el 52,8% (5.529) no han consumido alcohol. El 29.3% han consumido bebidas alcoholicas (3.074) y el 17.9% no respondieron esta pregunta, lo que corresponde a 1.875 personas.

Desc(hc$`H 30.0.4a Edad de inicio de consumo (Alcohol)`)
## ────────────────────────────────────────────────────────────────────────────── 
## hc$`H 30.0.4a Edad de inicio de consumo (Alcohol)` (numeric)
## 
##   length      n    NAs  unique     0s   mean  meanCI'
##   10'478  2'981  7'497      56      0  16.57   16.30
##           28.5%  71.5%           0.0%          16.83
##                                                     
##      .05    .10    .25  median    .75    .90     .95
##     8.00  10.00  12.00   15.00  18.00  25.00   30.00
##                                                     
##    range     sd  vcoef     mad    IQR   skew    kurt
##    63.00   7.48   0.45    4.45   6.00   2.04    6.47
##                                                     
## lowest : 1.0 (13), 2.0 (5), 3.0 (3), 4.0 (10), 5.0 (19)
## highest: 57.0 (2), 58.0 (2), 59.0, 60.0 (3), 64.0
## 
## heap(?): remarkable frequency (17.8%) for the mode(s) (= 15)
## 
## ' 95%-CI (classic)

En cuanto a la edad de inicio de consumo de alcohol se tiene que:

  • No se tiene información de edad para 93 personas que afirman haber consumido alcohol. Este valor se obtiene de calcular la suma de personas que no consumen/consumieron y los que no respondieron:
5529+1875
## [1] 7404
Y restarle el número de personas que tienen NA:
7497-7404
## [1] 93
  1. Se tienen 56 edades únicas (unique)

  2. La media de la edad de inicio de consumo de alcohol es 16 años

  3. El 5% de las personas iniciaron a consumir a los 8 años o antes. (percentil 0.05)

  4. La mediana de la edad de inicio es 15 años (median o percentil 0.50). Debido a que la media y la mediana no son iguales, se puede inferir que existen edades atípicas.

  5. El rango de las edades es 63 años, lo que se puede calcular como la diferencia entre la edad máxima y la edad mínima

{{r}} 64 - 1

  1. La desviación estándar es de 7.48, lo que indica que las edades tienden a desviarse +/- 7.48 años respecto a la media. Lo que implica que la mayoria de los valores deberan estar entre 9 y 24 años.

    media <- mean(hc$`H 30.0.4a Edad de inicio de consumo (Alcohol)`, na.rm=T)
    media
    ## [1] 16.56592
    var <- var(hc$`H 30.0.4a Edad de inicio de consumo (Alcohol)`, na.rm=T)
    var
    ## [1] 55.98533
    desvest <- sqrt(var)
    desvest
    ## [1] 7.482335
    rango_de1 <- media + desvest
    rango_de1
    ## [1] 24.04825
    rango_de2 <- media - desvest
    rango_de2
    ## [1] 9.083583
  2. El coeficiente de variación es de 0.45 (45%), lo que implica que la dispersión de los datos es relativamente alta al compararla con la media.

    vcoef <- desvest/media
    print(vcoef)
    ## [1] 0.4516704
  • El rango intercuartilico (IQR) es de 6, lo que implica que el 50% de los datos (entre el primer y el tercer cuartil, 0.25 - 0.75) tiene una amplitud de 6 años. Al usar solamente los quartiles 1 y 3, el IQR deja por fuera los datos atípicos a diferencia de la desviación estándar.

    Obsérvese que existe una diferencia entre el calculo de Desc y el calculo con la función quantile, lo que puede deberse a los decimales:

    quantile(hc$`H 30.0.3a Edad de inicio de consumo (Marihua)`, probs = c(0.25, 0.75), na.rm = TRUE)
    ## 25% 75% 
    ##  12  17
    17-12
    ## [1] 5

11. Tabla de resultados usando dply

Se quiere generar una tabla de resultados que cuente a los habitantes de calle según localidad.

¿Cuál de los siguientes códigos es verdadero?

a. Esta opción tiene un error y es que le hace falta un pipe en la línea 3

Error in UseMethod(): ! no applicable method for ‘count’ applied to an object of class “NULL” b. Esta opción calcula el número de personas que respondieron la encuesta, o la dimensión en filas de la misma. Dado que no esta agrupando por la variable de interés.

resultado <- hc %>% 
  select(LOCALIDAD,`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`) %>%
  count()

resultado
## # A tibble: 1 × 1
##       n
##   <int>
## 1 10478

c. Este código esta generando el conteo de personas según si han consumido o no alcohol, por localidad.

resultado <- hc %>% 
  select(LOCALIDAD,`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`) %>%
  group_by(LOCALIDAD) %>% 
  count(`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`)

resultado
## # A tibble: 60 × 3
## # Groups:   LOCALIDAD [20]
##    LOCALIDAD      H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etíli…¹     n
##    <fct>          <fct>                                                    <int>
##  1 Antonio Nariño NA                                                          79
##  2 Antonio Nariño NO                                                         253
##  3 Antonio Nariño SI                                                         121
##  4 Barrios Unidos NA                                                          77
##  5 Barrios Unidos NO                                                         165
##  6 Barrios Unidos SI                                                          75
##  7 Bosa           NA                                                          76
##  8 Bosa           NO                                                         166
##  9 Bosa           SI                                                         122
## 10 Chapinero      NA                                                          62
## # ℹ 50 more rows
## # ℹ abbreviated name:
## #   ¹​`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`

d. VERDADERO, este código esta agrupando las variables seleccionadas por localidad y generando el conteo, como no se incluye la variable de Alcohol en el group_by o en el count, no la tiene en cuenta para generar el resultado.

resultado <- hc %>% 
  select(LOCALIDAD,`H 30.0.4 Alcohol? (bebidas alcohólicas, chamber, etílico)`) %>%
  group_by(LOCALIDAD) %>% 
  count()

resultado
## # A tibble: 20 × 2
## # Groups:   LOCALIDAD [20]
##    LOCALIDAD              n
##    <fct>              <int>
##  1 Antonio Nariño       453
##  2 Barrios Unidos       317
##  3 Bosa                 364
##  4 Chapinero            354
##  5 Ciudad Bolivar       431
##  6 Engativá             589
##  7 Fontibón             313
##  8 Kennedy             1005
##  9 La Candelaria        143
## 10 Los Mártires        1302
## 11 NA                   971
## 12 Puenta Aranda        625
## 13 Rafael Uribe Uribe   599
## 14 San Cristobal        282
## 15 Santafé             1236
## 16 Suba                 528
## 17 Teusaquillo          313
## 18 Tunjuelito           186
## 19 Usaquén              305
## 20 Usme                 162
LS0tDQp0aXRsZTogIlNvbHVjacOzbiBQYXJjaWFsIEkgLSBNw6l0b2RvcyBjdWFudGl0YXRpdm9zIDIiDQphdXRob3I6ICJKdWxpZXRoIFpvcnJvIE1lbG8iDQpkYXRlOiAiMjAyNS0wMy0wMiINCm91dHB1dDogDQojaHR0cHM6Ly9ib29rZG93bi5vcmcveWlodWkvcm1hcmtkb3duL2h0bWwtZG9jdW1lbnQuaHRtbCAjVHV0b3JpYWwgYsOhc2ljbw0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZSAgICAgICAgICAgICAgICAgI1RhYmxhIGRlIGNvbnRlbmlkbw0KICAgIHRvY19kZXB0aDogMiAgICAgICAgICAgI05pdmVsIGRlIHByb2Z1bmRpZGFkIGRlIGxhIHRhYmxhIGRlIGNvbnRlbmlkbw0KICAgIG51bWJlcl9zZWN0aW9uczogRmFsc2UgICAgICNOdW1lcmFyIHNlY2Npb25lcw0KICAgIA0KICAgIHRvY19mbG9hdDogICAgICAgICAgICAgICAgI1RhYmxhIGRlIGNvbnRlbmlkbyBmbG90YW50ZQ0KICAgICAgY29sbGFwc2VkOiB0cnVlICAgICAgICAgICNUYWJsYSBkZSBjb250ZW5pZG8gY29sYXBzYWRhDQogICAgICBzbW9vdGhfc2Nyb2xsOiBmYWxzZSAgICAgICNEZXNwbGF6YW1pZW50byBzdWF2ZSAgDQogICAgICB0b2NfdGl0bGU6ICJDb250ZW5pZG8iICAgICNUw610dWxvIGRlIGxhIHRhYmxhIGRlIGNvbnRlbmlkbyAgICANCiAgICANCg0KICAgIHRoZW1lOiBmbGF0bHkgICAgICAgICAgICAjVGVtYSBkZSBsYSBwcmVzZW50YWNpw7NuICAjaHR0cHM6Ly9ib290c3dhdGNoLmNvbS8zL2pvdXJuYWwvDQogICAgaGlnaGxpZ2h0OiBlc3ByZXNzbyAgICAgICAgICAgI1Jlc2FsdGFkbyBkZSBsYSBzaW50YXhpcyAgICAgaHR0cHM6Ly9lbGFzdGljLWxvdmVsYWNlLTE1NTg0OC5uZXRsaWZ5LmFwcC9oaWdobGlnaHRlcnMuaHRtbA0KICAgIGNvZGVfZm9sZGluZzogc2hvdyAgICAgICAgI1BsZWdhZG8gZGUgY8OzZGlnbw0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUgICAgICAgI0Rlc2NhcmdhIGRlIGPDs2RpZ28NCi0tLQ0KDQpMYSBzaWd1aWVudGUgYmFzZSBkZSBkYXRvcyBjb250aWVuZSBpbmZvcm1hY2nDs24gc29icmUgZWwgY29uc3VtbyBkZSBhbGd1bmFzIHN1c3RhbmNpYXMgcHNpY29hY3RpdmFzIHBvciBwYXJ0ZSBkZSBsb3MgaGFiaXRhbnRlcyBkZSBjYWxsZSBkZSBCb2dvdMOhIGNlbnNhZG9zIGVuIGVsIGHDsW8gMjAyNC7CoA0KDQpbSGFiaXRhbnRlcyBkZSBjYWxsZS54bHN4XShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMvZC8xYllVR2wzQ1V5bERzZEJjZzYyYVE4MF9OaHVsZTU2bEwvZWRpdD91c3A9ZHJpdmVzZGsmb3VpZD0xMTE5Nzc3MDMxNzUyNzYwNzkyMTImcnRwb2Y9dHJ1ZSZzZD10cnVlKQ0KDQojIDEuIENhcmdhciBsYSBiYXNlIGRlIGRhdG9zDQoNCmBgYHtyfQ0KbGlicmFyeShyZWFkeGwpDQpoYyA8LSByZWFkX2V4Y2VsKCJVOi9NaSB1bmlkYWQvTcOpdG9kb3MgMS9QYXJjaWFsZXMvSGFiaXRhbnRlcyBkZSBjYWxsZS54bHN4IikNClZpZXcoaGVhZChoYykpDQpgYGANCg0KIyAyLiBOw7ptZXJvIGRlIGNvbHVtbmFzIGRlIGxhIGJhc2UgZGUgZGF0b3MNCg0KYGBge3J9DQpuY29sKGhjKQ0KYGBgDQoNCmBgYHtyfQ0KZGltKGhjKQ0KYGBgDQoNCiMgMy4gTsO6bWVybyBkZSBmaWxhcyBkZSBsYSBiYXNlIGRlIGRhdG9zDQoNCmBgYHtyfQ0KbnJvdyhoYykNCmBgYA0KDQpgYGB7cn0NCmRpbShoYykNCmBgYA0KDQojIDQuIMK/Q3XDoW50b3MgaGFiaXRhbnRlcyBkZSBjYWxsZSByZWdpc3RyYXJvbiB2aXZpciBlbiBsYSBsb2NhbGlkYWQgZGUgVXNtZT8NCg0KIyMgYS4gVXNhbmRvICJ0YWJsZSINCg0KYGBge3J9DQp0YWJsZShoYyRMT0NBTElEQUQpDQpgYGANCg0KIyMgYi4gVXNhbmRvICJzdW1tYXJ5Ig0KDQpUYW1iacOpbiBzZSBwdWVkZSByZWFsaXphciBjb24gbGEgZnVuY2nDs24gc3VtbWFyeSwgc2luIGVtYmFyZ28gY29tbyBsYSB2YXJpYWJsZSBMT0NBTElEQUQgZXN0YSBlbiBmb3JtYXRvIGNhcsOhY3RlciAodGV4dG8pIGNvbW8gcmVzdWx0YWRvIHNvbG8gZ2VuZXJhcmEgZWwgbsO6bWVybyBkZSByZWdpc3Ryb3MgcXVlIHRpZW5lbiBpbmZvcm1hY2nDs24gKExlbmd0aDogMTA0NzgpDQoNCmBgYHtyfQ0Kc3VtbWFyeShoYykNCmBgYA0KDQpQYXJhIGVzdG8sIGhheSBxdWUgY29udmVydGlyIGxhIHZhcmlhYmxlIExPQ0FMSURBRCBlbiBmYWN0b3IuDQoNCmBgYHtyfQ0Kc3RyKGhjJExPQ0FMSURBRCkNCmBgYA0KDQpgYGB7cn0NCmhjJExPQ0FMSURBRCA8LSBhcy5mYWN0b3IoaGMkTE9DQUxJREFEKQ0KYGBgDQoNCmBgYHtyfQ0Kc3RyKGhjJExPQ0FMSURBRCkNCmBgYA0KDQpgYGB7cn0NCnN1bW1hcnkoaGMkTE9DQUxJREFEKQ0KYGBgDQoNCiMjIGMuIFVzYW5kbyAiZHBseXIiDQoNCmBgYHtyfQ0KbGlicmFyeShkcGx5cikNCg0KdXNtZSA8LSBoYyAlPiUgDQogIHNlbGVjdChMT0NBTElEQUQpICU+JQ0KICBncm91cF9ieShMT0NBTElEQUQpICU+JSANCiAgY291bnQoKQ0KDQp1c21lDQpgYGANCg0KU2UgcHVlZGUgcmVhbGl6YXIgdW4gZmlsdHJvIHBhcmEgcXVlIHNvbG8gc2UgcHJlc2VudGUgZWwgdmFsb3IgZGUgVXNtZQ0KDQpgYGB7cn0NCmxpYnJhcnkoZHBseXIpDQoNCnVzbWUgPC0gaGMgJT4lIA0KICBzZWxlY3QoTE9DQUxJREFEKSAlPiUNCiAgZ3JvdXBfYnkoTE9DQUxJREFEKSAlPiUgDQogIGZpbHRlcihMT0NBTElEQUQgPT0gIlVzbWUiKSAlPiUgDQogIGNvdW50KCkNCg0KdXNtZQ0KYGBgDQoNCiMgNS4gwr9DdcOhbnRhcyBwZXJzb25hcyBhZmlybWFyb24gY29uc3VtaXIgYWxjb2hvbD8NCg0KUGFyYSBlc3RvIHByaW1lcm8gc2UgZGViZSBjb25vY2VyIGVsIG5vbWJyZSBkZSBsYXMgdmFyaWFibGVzIHF1ZSBjb25mb3JtYW4gbGEgYmFzZSBkZSBkYXRvczoNCg0KYGBge3J9DQpuYW1lcyhoYykNCmBgYA0KDQpMYSB2YXJpYWJsZSBhIHVzYXIgc2VyYToNCg0KYGBgICAgICAgICAgDQpIIDMwLjAuNCBBbGNvaG9sPyAoYmViaWRhcyBhbGNvaMOzbGljYXMsIGNoYW1iZXIsIGV0w61saWNvKQ0KYGBgDQoNCiMjIGEuIFVzYW5kbyAidGFibGUiDQoNCmBgYHtyfQ0KdGFibGUoaGMkYEggMzAuMC40IEFsY29ob2w/IChiZWJpZGFzIGFsY29ow7NsaWNhcywgY2hhbWJlciwgZXTDrWxpY28pYCkNCmBgYA0KDQpSdGE6IDMuMDc0IHBlcnNvbmFzIGFmaXJtYXJvbiBjb25zdW1pciBhbGNvaG9sDQoNCiMjIGIuIFVzYW5kbyAic3VtbWFyeSINCg0KVGFtYmnDqW4gc2UgcHVlZGUgcmVhbGl6YXIgY29uIGxhIGZ1bmNpw7NuIHN1bW1hcnksIHNpbiBlbWJhcmdvIGNvbW8gbGEgdmFyaWFibGUgTE9DQUxJREFEIGVzdGEgZW4gZm9ybWF0byBjYXLDoWN0ZXIgKHRleHRvKSBjb21vIHJlc3VsdGFkbyBzb2xvIGdlbmVyYXJhIGVsIG7Dum1lcm8gZGUgcmVnaXN0cm9zIHF1ZSB0aWVuZW4gaW5mb3JtYWNpw7NuIChMZW5ndGg6IDEwNDc4KQ0KDQpgYGB7cn0NCnN0cihoYyRgSCAzMC4wLjQgQWxjb2hvbD8gKGJlYmlkYXMgYWxjb2jDs2xpY2FzLCBjaGFtYmVyLCBldMOtbGljbylgKQ0KYGBgDQoNCmBgYHtyfQ0KaGMkYEggMzAuMC40IEFsY29ob2w/IChiZWJpZGFzIGFsY29ow7NsaWNhcywgY2hhbWJlciwgZXTDrWxpY28pYCA8LSBhcy5mYWN0b3IoaGMkYEggMzAuMC40IEFsY29ob2w/IChiZWJpZGFzIGFsY29ow7NsaWNhcywgY2hhbWJlciwgZXTDrWxpY28pYCkNCmBgYA0KDQpgYGB7cn0NCnN1bW1hcnkoaGMkYEggMzAuMC40IEFsY29ob2w/IChiZWJpZGFzIGFsY29ow7NsaWNhcywgY2hhbWJlciwgZXTDrWxpY28pYCkNCmBgYA0KDQojIyBjLiBVc2FuZG8gImRwbHlyIg0KDQpgYGB7cn0NCmxpYnJhcnkoZHBseXIpDQoNCmFsY29ob2wgPC0gaGMgJT4lIA0KICBzZWxlY3QoYEggMzAuMC40IEFsY29ob2w/IChiZWJpZGFzIGFsY29ow7NsaWNhcywgY2hhbWJlciwgZXTDrWxpY28pYCkgJT4lIA0KICBncm91cF9ieShgSCAzMC4wLjQgQWxjb2hvbD8gKGJlYmlkYXMgYWxjb2jDs2xpY2FzLCBjaGFtYmVyLCBldMOtbGljbylgKSAlPiUgICBzdW1tYXJpc2UobigpKQ0KDQphbGNvaG9sDQoNCmBgYA0KDQojIDYuIMK/Q3XDoWwgZXMgZWwgcG9yY2VudGFqZSBkZSBwZXJzb25hcyBxdWUgZW1wZXphcm9uIGEgY29uc3VtaXIgYWxjb2hvbCBhIGxvcyAxNSBhw7Fvcz8NCg0KIyMgYS4gVXNhbmRvICJwcm9wLnRhYmxlIg0KDQpgYGB7cn0NCmFkZG1hcmdpbnMocHJvcC50YWJsZSh0YWJsZShoYyRgSCAzMC4wLjRhIEVkYWQgZGUgaW5pY2lvIGRlIGNvbnN1bW8gKEFsY29ob2wpYCxoYyRgSCAzMC4wLjQgQWxjb2hvbD8gKGJlYmlkYXMgYWxjb2jDs2xpY2FzLCBjaGFtYmVyLCBldMOtbGljbylgKSkpDQpgYGANCg0KIyMgYi4gVXNhbmRvICJkcGx5ciINCg0KYGBge3J9DQplZGFkIDwtIGhjICU+JQ0KICBzZWxlY3QoYEggMzAuMC40YSBFZGFkIGRlIGluaWNpbyBkZSBjb25zdW1vIChBbGNvaG9sKWApICU+JSANCiAgZ3JvdXBfYnkoYEggMzAuMC40YSBFZGFkIGRlIGluaWNpbyBkZSBjb25zdW1vIChBbGNvaG9sKWApICU+JSANCiAgY291bnQoKSAlPiUgDQogIG11dGF0ZShuLzMwNzQpDQoNCmVkYWQNCmBgYA0KDQpHdWFyZGFuZG8gZWwgdmFsb3IgZGVsIFNJDQoNCmBgYHtyfQ0KYWxjb2hvbCA8LSB0YWJsZShoYyRgSCAzMC4wLjQgQWxjb2hvbD8gKGJlYmlkYXMgYWxjb2jDs2xpY2FzLCBjaGFtYmVyLCBldMOtbGljbylgKVszXQ0KDQphbGNvaG9sDQoNCmVkYWQgPC0gaGMgJT4lDQogIHNlbGVjdChgSCAzMC4wLjRhIEVkYWQgZGUgaW5pY2lvIGRlIGNvbnN1bW8gKEFsY29ob2wpYCkgJT4lIA0KICBncm91cF9ieShgSCAzMC4wLjRhIEVkYWQgZGUgaW5pY2lvIGRlIGNvbnN1bW8gKEFsY29ob2wpYCkgJT4lIA0KICBjb3VudCgpICU+JSANCiAgbXV0YXRlKG4vYWxjb2hvbCkNCg0KZWRhZA0KYGBgDQoNCkZpbHRyYW5kbyBzb2xvIHBhcmEgMTUgYcOxb3MNCg0KYGBge3J9DQphbGNvaG9sIDwtIHRhYmxlKGhjJGBIIDMwLjAuNCBBbGNvaG9sPyAoYmViaWRhcyBhbGNvaMOzbGljYXMsIGNoYW1iZXIsIGV0w61saWNvKWApWzNdDQoNCmFsY29ob2wNCg0KZWRhZCA8LSBoYyAlPiUNCiAgc2VsZWN0KGBIIDMwLjAuNGEgRWRhZCBkZSBpbmljaW8gZGUgY29uc3VtbyAoQWxjb2hvbClgKSAlPiUgDQogIGdyb3VwX2J5KGBIIDMwLjAuNGEgRWRhZCBkZSBpbmljaW8gZGUgY29uc3VtbyAoQWxjb2hvbClgKSAlPiUgDQogIGNvdW50KCkgJT4lIA0KICBtdXRhdGUobi9hbGNvaG9sKSAlPiUgDQogIGZpbHRlcihgSCAzMC4wLjRhIEVkYWQgZGUgaW5pY2lvIGRlIGNvbnN1bW8gKEFsY29ob2wpYD09MTUpDQoNCmVkYWQNCmBgYA0KDQojIDcuIEVsIHNpZ3VpZW50ZSByZXN1bHRhZG8gZXMgcGFydGUgZGVsIGNvbWFuZG86DQoNCiFbXShpbWFnZXMvY2xpcGJvYXJkLTkxNDE5MjA4My5wbmcpe3dpZHRoPSI0OTkifQ0KDQpgYGB7cn0NCnN0cihoYykNCmBgYA0KDQojIDguIEVsIHNpZ3VpZW50ZSByZXN1bHRhZG8gZXMgcGFydGUgZGVsIHBhcXVldGUgRGVzY1Rvb2xzIGNvbWFuZG86DQoNCiFbXShpbWFnZXMvY2xpcGJvYXJkLTMwMTE1NTkzMzAucG5nKQ0KDQpgYGB7cn0NCmxpYnJhcnkoRGVzY1Rvb2xzKQ0KDQpBYnN0cmFjdChoYykNCmBgYA0KDQojIDkuIFBlZ3VlIHkgYW5hbGljZSBsYXMgZ3LDoWZpY2FzIHBhcmEgbGFzIHNpZ3VpZW50ZXMgcHJlZ3VudGFzDQoNCmBgYHtyfQ0KRGVzYyhoYyRgSCAzMC4wLjMgTWFyaWh1YW5hP2ApDQoNCmBgYA0KDQotICAgTGFzIHBlcnNvbmFzIHF1ZSBhcmd1bWVudGFuIGhhYmVyIGNvbnN1bWlkbyBtYXJpaHVhbmEgc29uIGFwcm94aW1hZGFtZW50ZSA1LjAwMCBsbyBxdWUgcmVwcmVzZW50YSBjYXNpIGVsIDUwJSBkZSBsb3MgaGFiaXRhbnRlcyBkZSBjYWxsZSBjZW5zYWRvcy4NCg0KLSAgIFBvciBvdHJhIHBhcnRlLCBhcHJveGltYWRhbWVudGUgMy41MDAgaGMgYWZpcm1hbiBubyBoYWJlciBjb25zdW1pZG8gZXN0YSBzdXN0YW5jaWEgKGFwcm94LiAzNyUpDQoNCi0gICBBZGljaW9uYWxtZW50ZSwgY2FzaSAyLjAwMCBubyByZXNwb25kaWVyb24gZXN0YSBwcmVndW50YSAoXH4gMjAlKQ0KDQogICAgYGBge3J9DQogICAgRGVzYyhoYyRgSCAzMC4wLjNhIEVkYWQgZGUgaW5pY2lvIGRlIGNvbnN1bW8gKE1hcmlodWEpYCkNCiAgICBgYGANCg0KLSAgIEVsIGhpc3RvZ3JhbWEgc29icmUgbGEgZWRhZCBkZSBpbmljaW8gZGUgY29uc3VtbyBkZSBtYXJpaHVhbmEgbXVlc3RyYSBxdWUgbGEgbWF5b3IgZnJlY3VlbnRlIGVzIGVudHJlIGxvcyAxMCB5IDE1IGHDsW9zLCBzZWd1aWRvIHBvciBlbCByYW5nbyBlbnRyZSAxNSB5IDIwIGHDsW9zLg0KDQotICAgRWwgYm94cGxvdCBtdWVzdHJhIHF1ZSBsYSBtZWRpYW5hIGRlIGxhIGVkYWQgZGUgaW5pY2lvIGVzIDE1IGHDsW9zLiBDb24gdW4gcmFuZ28gaW50ZXJjdWFydGlsaWNvIGRlIGFwcm94aW1hZGFtZW50ZSA1IGHDsW9zLiBDb24gdW4gbcOtbmltbyBkZSA1IGHDsW9zIHkgdW4gbcOheGltbyBjZXJjYW5vIGEgbG9zIDY4IGHDsW9zLiBTZSBjb25zaWRlcmFuIGVkYWRlcyBhdMOtcGljYXMgcG9yIGRlYmFqbyBkZSBsb3MgNSBhw7FvcyB5IHBvciBlbmNpbWEgZGUgbG9zIDI0Lg0KDQotICAgTGEgw7psdGltYSBncsOhZmljYSwgcXVlIHJlcHJlc2VudGEgbGEgZnJlY3VlbmNpYSByZWxhdGl2YSBhY3VtdWxhZGEgZGUgbGEgZWRhZCBkZSBpbmljaW8sIGluZGljYSBxdWUgZWwgNTAlIGRlIGxvcyBoYWJpdGFudGVzIGRlIGNhbGxlIGNlbnNhZG9zIHF1ZSBoYW4gY29uc3VtaWRvIG1hcmlodWFuYSwgaW5pY2lhcm9uIGFudGVzIGRlIGxvcyAxNSBhw7FvcywgeSBlbCA5MCUgYW50ZXMgZGUgbG9zIDIwIGHDsW9zIGFwcm94aW1hZGFtZW50ZS4NCg0KIyAxMC4gUGVndWUgeSBhbmFsaWNlIGxhcyBncsOhZmljYXMgcGFyYSBsYXMgc2lndWllbnRlcyBwcmVndW50YXMNCg0KYGBge3J9DQpEZXNjKGhjJGBIIDMwLjAuNCBBbGNvaG9sPyAoYmViaWRhcyBhbGNvaMOzbGljYXMsIGNoYW1iZXIsIGV0w61saWNvKWApDQpgYGANCg0KLSAgIFNlIHRpZW5lIHF1ZSBlc3RhIGVzIHVuYSBwcmVndW50YSBxdWUgdG9tYSAzIHZhbG9yZXMgKGxldmVsczogMyksIGxvcyBjdWFsZXMgc29uIFNJLCBOTyB5IE5BLg0KDQotICAgRGUgbG9zIDEwLjQ3OCBoYWJpdGFudGVzIGRlIGNhbGxlIGNlbnNhZG9zLCBzZSB0aWVuZSBxdWUgZWwgNTIsOCUgKDUuNTI5KSBubyBoYW4gY29uc3VtaWRvIGFsY29ob2wuIEVsIDI5LjMlIGhhbiBjb25zdW1pZG8gYmViaWRhcyBhbGNvaG9saWNhcyAoMy4wNzQpIHkgZWwgMTcuOSUgbm8gcmVzcG9uZGllcm9uIGVzdGEgcHJlZ3VudGEsIGxvIHF1ZSBjb3JyZXNwb25kZSBhIDEuODc1IHBlcnNvbmFzLg0KDQpgYGB7cn0NCkRlc2MoaGMkYEggMzAuMC40YSBFZGFkIGRlIGluaWNpbyBkZSBjb25zdW1vIChBbGNvaG9sKWApDQpgYGANCg0KRW4gY3VhbnRvIGEgbGEgZWRhZCBkZSBpbmljaW8gZGUgY29uc3VtbyBkZSBhbGNvaG9sIHNlIHRpZW5lIHF1ZToNCg0KLSAgIE5vIHNlIHRpZW5lIGluZm9ybWFjacOzbiBkZSBlZGFkIHBhcmEgOTMgcGVyc29uYXMgcXVlIGFmaXJtYW4gaGFiZXIgY29uc3VtaWRvIGFsY29ob2wuIEVzdGUgdmFsb3Igc2Ugb2J0aWVuZSBkZSBjYWxjdWxhciBsYSBzdW1hIGRlIHBlcnNvbmFzIHF1ZSBubyBjb25zdW1lbi9jb25zdW1pZXJvbiB5IGxvcyBxdWUgbm8gcmVzcG9uZGllcm9uOg0KDQpgYGB7cn0NCjU1MjkrMTg3NQ0KDQpgYGANCg0KYGBgICAgICAgICAgDQpZIHJlc3RhcmxlIGVsIG7Dum1lcm8gZGUgcGVyc29uYXMgcXVlIHRpZW5lbiBOQToNCmBgYA0KDQpgYGB7cn0NCjc0OTctNzQwNA0KDQpgYGANCg0KMS4gIFNlIHRpZW5lbiA1NiBlZGFkZXMgw7puaWNhcyAodW5pcXVlKQ0KDQoyLiAgTGEgbWVkaWEgZGUgbGEgZWRhZCBkZSBpbmljaW8gZGUgY29uc3VtbyBkZSBhbGNvaG9sIGVzIDE2IGHDsW9zDQoNCjMuICBFbCA1JSBkZSBsYXMgcGVyc29uYXMgaW5pY2lhcm9uIGEgY29uc3VtaXIgYSBsb3MgOCBhw7FvcyBvIGFudGVzLiAocGVyY2VudGlsIDAuMDUpDQoNCjQuICBMYSBtZWRpYW5hIGRlIGxhIGVkYWQgZGUgaW5pY2lvIGVzIDE1IGHDsW9zIChtZWRpYW4gbyBwZXJjZW50aWwgMC41MCkuIERlYmlkbyBhIHF1ZSBsYSBtZWRpYSB5IGxhIG1lZGlhbmEgbm8gc29uIGlndWFsZXMsIHNlIHB1ZWRlIGluZmVyaXIgcXVlIGV4aXN0ZW4gZWRhZGVzIGF0w61waWNhcy4NCg0KNS4gIEVsIHJhbmdvIGRlIGxhcyBlZGFkZXMgZXMgNjMgYcOxb3MsIGxvIHF1ZSBzZSBwdWVkZSBjYWxjdWxhciBjb21vIGxhIGRpZmVyZW5jaWEgZW50cmUgbGEgZWRhZCBtw6F4aW1hIHkgbGEgZWRhZCBtw61uaW1hDQoNCmBgYHt7cn19DQo2NCAtIDENCmBgYA0KDQo2LiAgTGEgZGVzdmlhY2nDs24gZXN0w6FuZGFyIGVzIGRlIDcuNDgsIGxvIHF1ZSBpbmRpY2EgcXVlIGxhcyBlZGFkZXMgdGllbmRlbiBhIGRlc3ZpYXJzZSArLy0gNy40OCBhw7FvcyByZXNwZWN0byBhIGxhIG1lZGlhLiBMbyBxdWUgaW1wbGljYSBxdWUgbGEgbWF5b3JpYSBkZSBsb3MgdmFsb3JlcyBkZWJlcmFuIGVzdGFyIGVudHJlIDkgeSAyNCBhw7Fvcy4NCg0KICAgIGBgYHtyfQ0KICAgIG1lZGlhIDwtIG1lYW4oaGMkYEggMzAuMC40YSBFZGFkIGRlIGluaWNpbyBkZSBjb25zdW1vIChBbGNvaG9sKWAsIG5hLnJtPVQpDQogICAgbWVkaWENCg0KICAgIHZhciA8LSB2YXIoaGMkYEggMzAuMC40YSBFZGFkIGRlIGluaWNpbyBkZSBjb25zdW1vIChBbGNvaG9sKWAsIG5hLnJtPVQpDQogICAgdmFyDQoNCiAgICBkZXN2ZXN0IDwtIHNxcnQodmFyKQ0KICAgIGRlc3Zlc3QNCg0KICAgIHJhbmdvX2RlMSA8LSBtZWRpYSArIGRlc3Zlc3QNCiAgICByYW5nb19kZTENCg0KICAgIHJhbmdvX2RlMiA8LSBtZWRpYSAtIGRlc3Zlc3QNCiAgICByYW5nb19kZTINCg0KICAgIGBgYA0KDQo3LiAgRWwgY29lZmljaWVudGUgZGUgdmFyaWFjacOzbiBlcyBkZSAwLjQ1ICg0NSUpLCBsbyBxdWUgaW1wbGljYSBxdWUgbGEgZGlzcGVyc2nDs24gZGUgbG9zIGRhdG9zIGVzIHJlbGF0aXZhbWVudGUgYWx0YSBhbCBjb21wYXJhcmxhIGNvbiBsYSBtZWRpYS4NCg0KICAgIGBgYHtyfQ0KICAgIHZjb2VmIDwtIGRlc3Zlc3QvbWVkaWENCiAgICBwcmludCh2Y29lZikNCiAgICBgYGANCg0KLSAgIEVsIHJhbmdvIGludGVyY3VhcnRpbGljbyAoSVFSKSBlcyBkZSA2LCBsbyBxdWUgaW1wbGljYSBxdWUgZWwgNTAlIGRlIGxvcyBkYXRvcyAoZW50cmUgZWwgcHJpbWVyIHkgZWwgdGVyY2VyIGN1YXJ0aWwsIDAuMjUgLSAwLjc1KSB0aWVuZSB1bmEgYW1wbGl0dWQgZGUgNiBhw7Fvcy4gQWwgdXNhciBzb2xhbWVudGUgbG9zIHF1YXJ0aWxlcyAxIHkgMywgZWwgSVFSIGRlamEgcG9yIGZ1ZXJhIGxvcyBkYXRvcyBhdMOtcGljb3MgYSBkaWZlcmVuY2lhIGRlIGxhIGRlc3ZpYWNpw7NuIGVzdMOhbmRhci4NCg0KICAgIE9ic8OpcnZlc2UgcXVlIGV4aXN0ZSB1bmEgZGlmZXJlbmNpYSBlbnRyZSBlbCBjYWxjdWxvIGRlIERlc2MgeSBlbCBjYWxjdWxvIGNvbiBsYSBmdW5jacOzbiBxdWFudGlsZSwgbG8gcXVlIHB1ZWRlIGRlYmVyc2UgYSBsb3MgZGVjaW1hbGVzOg0KDQogICAgYGBge3J9DQogICAgcXVhbnRpbGUoaGMkYEggMzAuMC4zYSBFZGFkIGRlIGluaWNpbyBkZSBjb25zdW1vIChNYXJpaHVhKWAsIHByb2JzID0gYygwLjI1LCAwLjc1KSwgbmEucm0gPSBUUlVFKQ0KDQogICAgMTctMTINCg0KDQogICAgYGBgDQoNCiMgMTEuIFRhYmxhIGRlIHJlc3VsdGFkb3MgdXNhbmRvIGRwbHkNCg0KU2UgcXVpZXJlIGdlbmVyYXIgdW5hIHRhYmxhIGRlIHJlc3VsdGFkb3MgcXVlIGN1ZW50ZSBhIGxvcyBoYWJpdGFudGVzIGRlIGNhbGxlIHNlZ8O6biBsb2NhbGlkYWQuDQoNCsK/Q3XDoWwgZGUgbG9zIHNpZ3VpZW50ZXMgY8OzZGlnb3MgZXMgdmVyZGFkZXJvPw0KDQphXC4gRXN0YSBvcGNpw7NuIHRpZW5lIHVuIGVycm9yIHkgZXMgcXVlIGxlIGhhY2UgZmFsdGEgdW4gcGlwZSBlbiBsYSBsw61uZWEgMw0KDQpgYGB7ciBkLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KcmVzdWx0YWRvIDwtIGhjICU+JSAgDQogIHNlbGVjdChMT0NBTElEQUQsYEggMzAuMC40IEFsY29ob2w/IChiZWJpZGFzIGFsY29ow7NsaWNhcywgY2hhbWJlciwgZXTDrWxpY28pYCkgJT4lIA0KICBncm91cF9ieShMT0NBTElEQUQsYEggMzAuMC40IEFsY29ob2w/IChiZWJpZGFzIGFsY29ow7NsaWNhcywgY2hhbWJlciwgZXTDrWxpY28pYCkgIA0KICBjb3VudCgpDQogIA0KcmVzdWx0YWRvDQpgYGANCg0KRXJyb3IgaW4gYFVzZU1ldGhvZCgpYDogISBubyBhcHBsaWNhYmxlIG1ldGhvZCBmb3IgJ2NvdW50JyBhcHBsaWVkIHRvIGFuIG9iamVjdCBvZiBjbGFzcyAiTlVMTCIgYi4gRXN0YSBvcGNpw7NuIGNhbGN1bGEgZWwgbsO6bWVybyBkZSBwZXJzb25hcyBxdWUgcmVzcG9uZGllcm9uIGxhIGVuY3Vlc3RhLCBvIGxhIGRpbWVuc2nDs24gZW4gZmlsYXMgZGUgbGEgbWlzbWEuIERhZG8gcXVlIG5vIGVzdGEgYWdydXBhbmRvIHBvciBsYSB2YXJpYWJsZSBkZSBpbnRlcsOpcy4NCg0KYGBge3IgYX0NCnJlc3VsdGFkbyA8LSBoYyAlPiUgDQogIHNlbGVjdChMT0NBTElEQUQsYEggMzAuMC40IEFsY29ob2w/IChiZWJpZGFzIGFsY29ow7NsaWNhcywgY2hhbWJlciwgZXTDrWxpY28pYCkgJT4lDQogIGNvdW50KCkNCg0KcmVzdWx0YWRvDQpgYGANCg0KY1wuIEVzdGUgY8OzZGlnbyBlc3RhIGdlbmVyYW5kbyBlbCBjb250ZW8gZGUgcGVyc29uYXMgc2Vnw7puIHNpIGhhbiBjb25zdW1pZG8gbyBubyBhbGNvaG9sLCBwb3IgbG9jYWxpZGFkLg0KDQpgYGB7ciBifQ0KcmVzdWx0YWRvIDwtIGhjICU+JSANCiAgc2VsZWN0KExPQ0FMSURBRCxgSCAzMC4wLjQgQWxjb2hvbD8gKGJlYmlkYXMgYWxjb2jDs2xpY2FzLCBjaGFtYmVyLCBldMOtbGljbylgKSAlPiUNCiAgZ3JvdXBfYnkoTE9DQUxJREFEKSAlPiUgDQogIGNvdW50KGBIIDMwLjAuNCBBbGNvaG9sPyAoYmViaWRhcyBhbGNvaMOzbGljYXMsIGNoYW1iZXIsIGV0w61saWNvKWApDQoNCnJlc3VsdGFkbw0KYGBgDQoNCmRcLiBWRVJEQURFUk8sIGVzdGUgY8OzZGlnbyBlc3RhIGFncnVwYW5kbyBsYXMgdmFyaWFibGVzIHNlbGVjY2lvbmFkYXMgcG9yIGxvY2FsaWRhZCB5IGdlbmVyYW5kbyBlbCBjb250ZW8sIGNvbW8gbm8gc2UgaW5jbHV5ZSBsYSB2YXJpYWJsZSBkZSBBbGNvaG9sIGVuIGVsIGdyb3VwX2J5IG8gZW4gZWwgY291bnQsIG5vIGxhIHRpZW5lIGVuIGN1ZW50YSBwYXJhIGdlbmVyYXIgZWwgcmVzdWx0YWRvLg0KDQpgYGB7ciBjfQ0KcmVzdWx0YWRvIDwtIGhjICU+JSANCiAgc2VsZWN0KExPQ0FMSURBRCxgSCAzMC4wLjQgQWxjb2hvbD8gKGJlYmlkYXMgYWxjb2jDs2xpY2FzLCBjaGFtYmVyLCBldMOtbGljbylgKSAlPiUNCiAgZ3JvdXBfYnkoTE9DQUxJREFEKSAlPiUgDQogIGNvdW50KCkNCg0KcmVzdWx0YWRvDQoNCmBgYA0K