R Markdown

#Instalar paquetes y llamar librerias

library(readxl)
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.4.1     ✔ purrr   1.0.1
## ✔ tibble  3.2.1     ✔ dplyr   1.1.4
## ✔ tidyr   1.3.0     ✔ stringr 1.5.0
## ✔ readr   2.1.4     ✔ forcats 1.0.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(ggplot2)
library(dplyr)

#Actividad Individual 2

#Identificar en el dataframe de la Situación Problema 2 las estructuras de datos que investigaste en tu tarea colaborativa 1 (Vectores, Listas, Factores, Matrices)

ArcaContinentalDatos <- read_excel("Downloads/ArcaContinentalDatos.xlsx")
View(ArcaContinentalDatos)
str(ArcaContinentalDatos)
## tibble [466,509 × 25] (S3: tbl_df/tbl/data.frame)
##  $ ID                  : num [1:466509] 1 2 3 4 5 6 7 8 9 10 ...
##  $ Año                 : num [1:466509] 2016 2016 2016 2016 2016 ...
##  $ Territorio          : chr [1:466509] "Guadalajara" "Guadalajara" "Guadalajara" "Guadalajara" ...
##  $ Sub Territorio      : chr [1:466509] "Belenes" "Belenes" "Belenes" "Belenes" ...
##  $ CEDI                : chr [1:466509] "Suc. Belenes" "Suc. Belenes" "Suc. Belenes" "Suc. Belenes" ...
##  $ Cliente             : chr [1:466509] "77737" "77737" "77737" "77737" ...
##  $ Nombre              : chr [1:466509] "ABARR" "ABARR" "ABARR" "ABARR" ...
##  $ Tamaño Cte Industria: chr [1:466509] "Extra Grande" "Extra Grande" "Extra Grande" "Extra Grande" ...
##  $ Segmento Det        : chr [1:466509] "Agua Mineral" "Agua Purificada" "Agua Purificada" "Agua Saborizada" ...
##  $ Marca               : chr [1:466509] "Topo Chico A.M." "Ciel Agua Purificada" "Ciel Agua Purificada" "Ciel Exprim" ...
##  $ Presentacion        : chr [1:466509] "600 ml NR" "1 Ltro. N.R." "1.5 Lts. NR" "600 ml NR" ...
##  $ Tamaño              : chr [1:466509] "Individual" "Individual" "Individual" "Individual" ...
##  $ Retornable_NR       : chr [1:466509] "No Retornable" "No Retornable" "No Retornable" "No Retornable" ...
##  $ Enero               : num [1:466509] NA NA NA NA NA NA 1 NA 3 NA ...
##  $ Febrero             : num [1:466509] NA 2 NA NA NA NA NA 1 3 NA ...
##  $ Marzo               : num [1:466509] NA 8 3 NA NA 1 NA NA 4 NA ...
##  $ Abril               : num [1:466509] NA 4 6 NA NA NA NA 1 4 NA ...
##  $ Mayo                : num [1:466509] NA 4 3 NA NA NA 0 NA 4 NA ...
##  $ Junio               : num [1:466509] NA 2 3 NA NA NA NA 1 4 0 ...
##  $ Julio               : num [1:466509] NA 2 3 NA NA NA 0 NA 4 NA ...
##  $ Agosto              : num [1:466509] NA 2 3 NA NA NA NA 1 7 NA ...
##  $ Septiembre          : num [1:466509] NA 2 3 NA NA NA NA 1 4 NA ...
##  $ Octubre             : num [1:466509] NA 2 3 NA NA NA 0 NA 3 NA ...
##  $ Noviembre           : num [1:466509] NA 4 3 NA 0 NA NA NA 1 NA ...
##  $ Diciembre           : num [1:466509] 1 2 3 1 NA NA NA NA 3 NA ...

#¿El dataframe tiene NAs?

nas_por_columna <- colSums(is.na(ArcaContinentalDatos))
print(nas_por_columna)
##                   ID                  Año           Territorio 
##                    0                    0                    0 
##       Sub Territorio                 CEDI              Cliente 
##                    0                    0                    0 
##               Nombre Tamaño Cte Industria         Segmento Det 
##                    0                    0                    0 
##                Marca         Presentacion               Tamaño 
##                    0                    0                    0 
##        Retornable_NR                Enero              Febrero 
##                    0               233480               231213 
##                Marzo                Abril                 Mayo 
##               227420               224057               216910 
##                Junio                Julio               Agosto 
##               215753               223411               220242 
##           Septiembre              Octubre            Noviembre 
##               337314               338386               338460 
##            Diciembre 
##               341855

#¿El dataframe tiene datos perdidos?

ArcaContinentalDatos <- replace(ArcaContinentalDatos, is.na(ArcaContinentalDatos), 0)
nas_por_columna <- colSums(is.na(ArcaContinentalDatos))
print(nas_por_columna)
##                   ID                  Año           Territorio 
##                    0                    0                    0 
##       Sub Territorio                 CEDI              Cliente 
##                    0                    0                    0 
##               Nombre Tamaño Cte Industria         Segmento Det 
##                    0                    0                    0 
##                Marca         Presentacion               Tamaño 
##                    0                    0                    0 
##        Retornable_NR                Enero              Febrero 
##                    0                    0                    0 
##                Marzo                Abril                 Mayo 
##                    0                    0                    0 
##                Junio                Julio               Agosto 
##                    0                    0                    0 
##           Septiembre              Octubre            Noviembre 
##                    0                    0                    0 
##            Diciembre 
##                    0

#detectar valores atípicos

boxplot(ArcaContinentalDatos$Enero)

boxplot(ArcaContinentalDatos$Febrero)

boxplot(ArcaContinentalDatos$Marzo)

boxplot(ArcaContinentalDatos$Abril)

boxplot(ArcaContinentalDatos$Mayo)

boxplot(ArcaContinentalDatos$Junio)

boxplot(ArcaContinentalDatos$Julio)

boxplot(ArcaContinentalDatos$Agosto)

boxplot(ArcaContinentalDatos$Septiembre)

boxplot(ArcaContinentalDatos$Octubre)

boxplot(ArcaContinentalDatos$Noviembre)

boxplot(ArcaContinentalDatos$Diciembre)

#eliminar renglón de totales
ArcaContinentalDatos<- ArcaContinentalDatos[ArcaContinentalDatos$Enero <6000, ]
library(dplyr)

ventas_enero_a_junio <- ArcaContinentalDatos %>%
  select(CEDI, Enero:Junio)


print(ventas_enero_a_junio)
## # A tibble: 466,508 × 7
##    CEDI         Enero Febrero Marzo Abril  Mayo Junio
##    <chr>        <dbl>   <dbl> <dbl> <dbl> <dbl> <dbl>
##  1 Suc. Belenes     0       0     0     0     0     0
##  2 Suc. Belenes     0       2     8     4     4     2
##  3 Suc. Belenes     0       0     3     6     3     3
##  4 Suc. Belenes     0       0     0     0     0     0
##  5 Suc. Belenes     0       0     0     0     0     0
##  6 Suc. Belenes     0       0     1     0     0     0
##  7 Suc. Belenes     1       0     0     0     0     0
##  8 Suc. Belenes     0       1     0     1     0     1
##  9 Suc. Belenes     3       3     4     4     4     4
## 10 Suc. Belenes     0       0     0     0     0     0
## # ℹ 466,498 more rows
movimientos_grandes <- ArcaContinentalDatos %>%
  filter(`Tamaño Cte Industria` == "Grande")

print(movimientos_grandes)
## # A tibble: 41,333 × 25
##        ID   Año Territorio  `Sub Territorio` CEDI         Cliente Nombre
##     <dbl> <dbl> <chr>       <chr>            <chr>        <chr>   <chr> 
##  1 374960  2019 Guadalajara Belenes          Suc. Belenes 7657    FROYL 
##  2 374961  2019 Guadalajara Belenes          Suc. Belenes 7657    FROYL 
##  3 374962  2019 Guadalajara Belenes          Suc. Belenes 7657    FROYL 
##  4 374963  2019 Guadalajara Belenes          Suc. Belenes 7657    FROYL 
##  5 374964  2019 Guadalajara Belenes          Suc. Belenes 7657    FROYL 
##  6 374965  2019 Guadalajara Belenes          Suc. Belenes 7657    FROYL 
##  7 374966  2019 Guadalajara Belenes          Suc. Belenes 7657    FROYL 
##  8 374967  2019 Guadalajara Belenes          Suc. Belenes 7657    FROYL 
##  9 374968  2019 Guadalajara Belenes          Suc. Belenes 7657    FROYL 
## 10 374969  2019 Guadalajara Belenes          Suc. Belenes 7657    FROYL 
## # ℹ 41,323 more rows
## # ℹ 18 more variables: `Tamaño Cte Industria` <chr>, `Segmento Det` <chr>,
## #   Marca <chr>, Presentacion <chr>, Tamaño <chr>, Retornable_NR <chr>,
## #   Enero <dbl>, Febrero <dbl>, Marzo <dbl>, Abril <dbl>, Mayo <dbl>,
## #   Junio <dbl>, Julio <dbl>, Agosto <dbl>, Septiembre <dbl>, Octubre <dbl>,
## #   Noviembre <dbl>, Diciembre <dbl>
ArcaContinentalDatos_ordenado <- ArcaContinentalDatos %>%
  arrange(CEDI, Marca, Presentacion)

print(ArcaContinentalDatos_ordenado)
## # A tibble: 466,508 × 25
##        ID   Año Territorio  `Sub Territorio` CEDI         Cliente Nombre
##     <dbl> <dbl> <chr>       <chr>            <chr>        <chr>   <chr> 
##  1 200110  2018 Guadalajara Belenes          Suc. Belenes 7800    SAN I 
##  2 200224  2018 Guadalajara Belenes          Suc. Belenes 7875    ABARR 
##  3 200461  2018 Guadalajara Belenes          Suc. Belenes 7917    ABARR 
##  4 200576  2018 Guadalajara Belenes          Suc. Belenes 8010    ABARR 
##  5 200682  2018 Guadalajara Belenes          Suc. Belenes 8186    SUPER 
##  6 200783  2018 Guadalajara Belenes          Suc. Belenes 8201    MIGUE 
##  7 200968  2018 Guadalajara Belenes          Suc. Belenes 8678    FERNA 
##  8 201041  2018 Guadalajara Belenes          Suc. Belenes 8689    ABARR 
##  9 201313  2018 Guadalajara Belenes          Suc. Belenes 8795    ABARR 
## 10 201415  2018 Guadalajara Belenes          Suc. Belenes 8842    ABARR 
## # ℹ 466,498 more rows
## # ℹ 18 more variables: `Tamaño Cte Industria` <chr>, `Segmento Det` <chr>,
## #   Marca <chr>, Presentacion <chr>, Tamaño <chr>, Retornable_NR <chr>,
## #   Enero <dbl>, Febrero <dbl>, Marzo <dbl>, Abril <dbl>, Mayo <dbl>,
## #   Junio <dbl>, Julio <dbl>, Agosto <dbl>, Septiembre <dbl>, Octubre <dbl>,
## #   Noviembre <dbl>, Diciembre <dbl>
library(dplyr)

ArcaContinentalDatos <- ArcaContinentalDatos %>%
  rename(Sub_territorio = `Sub Territorio`)

str(ArcaContinentalDatos)
## tibble [466,508 × 25] (S3: tbl_df/tbl/data.frame)
##  $ ID                  : num [1:466508] 1 2 3 4 5 6 7 8 9 10 ...
##  $ Año                 : num [1:466508] 2016 2016 2016 2016 2016 ...
##  $ Territorio          : chr [1:466508] "Guadalajara" "Guadalajara" "Guadalajara" "Guadalajara" ...
##  $ Sub_territorio      : chr [1:466508] "Belenes" "Belenes" "Belenes" "Belenes" ...
##  $ CEDI                : chr [1:466508] "Suc. Belenes" "Suc. Belenes" "Suc. Belenes" "Suc. Belenes" ...
##  $ Cliente             : chr [1:466508] "77737" "77737" "77737" "77737" ...
##  $ Nombre              : chr [1:466508] "ABARR" "ABARR" "ABARR" "ABARR" ...
##  $ Tamaño Cte Industria: chr [1:466508] "Extra Grande" "Extra Grande" "Extra Grande" "Extra Grande" ...
##  $ Segmento Det        : chr [1:466508] "Agua Mineral" "Agua Purificada" "Agua Purificada" "Agua Saborizada" ...
##  $ Marca               : chr [1:466508] "Topo Chico A.M." "Ciel Agua Purificada" "Ciel Agua Purificada" "Ciel Exprim" ...
##  $ Presentacion        : chr [1:466508] "600 ml NR" "1 Ltro. N.R." "1.5 Lts. NR" "600 ml NR" ...
##  $ Tamaño              : chr [1:466508] "Individual" "Individual" "Individual" "Individual" ...
##  $ Retornable_NR       : chr [1:466508] "No Retornable" "No Retornable" "No Retornable" "No Retornable" ...
##  $ Enero               : num [1:466508] 0 0 0 0 0 0 1 0 3 0 ...
##  $ Febrero             : num [1:466508] 0 2 0 0 0 0 0 1 3 0 ...
##  $ Marzo               : num [1:466508] 0 8 3 0 0 1 0 0 4 0 ...
##  $ Abril               : num [1:466508] 0 4 6 0 0 0 0 1 4 0 ...
##  $ Mayo                : num [1:466508] 0 4 3 0 0 0 0 0 4 0 ...
##  $ Junio               : num [1:466508] 0 2 3 0 0 0 0 1 4 0 ...
##  $ Julio               : num [1:466508] 0 2 3 0 0 0 0 0 4 0 ...
##  $ Agosto              : num [1:466508] 0 2 3 0 0 0 0 1 7 0 ...
##  $ Septiembre          : num [1:466508] 0 2 3 0 0 0 0 1 4 0 ...
##  $ Octubre             : num [1:466508] 0 2 3 0 0 0 0 0 3 0 ...
##  $ Noviembre           : num [1:466508] 0 4 3 0 0 0 0 0 1 0 ...
##  $ Diciembre           : num [1:466508] 1 2 3 1 0 0 0 0 3 0 ...
ArcaContinentalDatos <- ArcaContinentalDatos %>%
  mutate(Ventas_Primer_Semestre = Enero + Febrero + Marzo + Abril + Mayo + Junio)

ventas_por_marca_primer_semestre <- ArcaContinentalDatos %>%
  group_by(Marca) %>%
  summarize(Ventas_Primer_Semestre = sum(Ventas_Primer_Semestre))

print(ventas_por_marca_primer_semestre)
## # A tibble: 55 × 2
##    Marca                Ventas_Primer_Semestre
##    <chr>                                 <dbl>
##  1 AdeS Frutal                            8126
##  2 AdeS Lácteo                            4413
##  3 Barista Bros                            334
##  4 Bebere                                 1034
##  5 Burn                                   5070
##  6 Café Blak                                79
##  7 Ciel Agua Purificada                 864686
##  8 Ciel Exprim                           33959
##  9 Ciel Mineralizada                     18043
## 10 Ciel Mini                              4942
## # ℹ 45 more rows
media_ventas <- ArcaContinentalDatos %>%
  group_by(Marca, Presentacion, Tamaño) %>%
  summarise(Media_Ventas_Primer_Semestre = mean(Enero + Febrero + Marzo + Abril + Mayo + Junio))
## `summarise()` has grouped output by 'Marca', 'Presentacion'. You can override
## using the `.groups` argument.
print(media_ventas)
## # A tibble: 273 × 4
## # Groups:   Marca, Presentacion [272]
##    Marca        Presentacion    Tamaño     Media_Ventas_Primer_Semestre
##    <chr>        <chr>           <chr>                             <dbl>
##  1 AdeS Frutal  200 ml Tetra    Individual                       1.22  
##  2 AdeS Frutal  946 ml NR Tetra Familiar                         4.17  
##  3 AdeS Lácteo  200 ml Tetra    Individual                       0.0857
##  4 AdeS Lácteo  946 ml NR Tetra Familiar                         3.30  
##  5 Barista Bros 250 ml. NR PET  Individual                       0.343 
##  6 Bebere       473 ml NR       Individual                       3.23  
##  7 Burn         Lata 235 ml     Individual                       0.558 
##  8 Burn         Lata 237 ml     Individual                       0.182 
##  9 Burn         Lata 310 ml     Individual                       0     
## 10 Burn         Lata 450 ml     Individual                       2.60  
## # ℹ 263 more rows
media_ventas <- mean(ArcaContinentalDatos$Enero + ArcaContinentalDatos$Febrero + 
                     ArcaContinentalDatos$Marzo + ArcaContinentalDatos$Abril + 
                     ArcaContinentalDatos$Mayo + ArcaContinentalDatos$Junio)

#  mediana 
mediana_ventas <- median(ArcaContinentalDatos$Enero + ArcaContinentalDatos$Febrero + 
                         ArcaContinentalDatos$Marzo + ArcaContinentalDatos$Abril + 
                         ArcaContinentalDatos$Mayo + ArcaContinentalDatos$Junio)

# Mode
Mode <- function(x) {
  ux <- unique(x)
  ux[which.max(tabulate(match(x, ux)))]
}
moda_ventas <- Mode(ArcaContinentalDatos$Enero + ArcaContinentalDatos$Febrero + 
                    ArcaContinentalDatos$Marzo + ArcaContinentalDatos$Abril + 
                    ArcaContinentalDatos$Mayo + ArcaContinentalDatos$Junio)

print(paste("Media de las ventas del primer semestre:", media_ventas))
## [1] "Media de las ventas del primer semestre: 34.6962045666975"
print(paste("Mediana de las ventas del primer semestre:", mediana_ventas))
## [1] "Mediana de las ventas del primer semestre: 4"
print(paste("Moda de las ventas del primer semestre:", moda_ventas))
## [1] "Moda de las ventas del primer semestre: 0"