#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"