scrapdata <- read.csv ("/Users/ivannagarza/Desktop/TEC/7 SEMESTRE/RETO/FORM - Scrap.csv")
summary (scrapdata)## Referencia Fecha Hora Producto
## Length:251 Length:251 Length:251 Length:251
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Cantidad Unidad.de.medida Ubicación.de.origen Ubicación.de.desecho
## Min. : 0.00 Length:251 Length:251 Length:251
## 1st Qu.: 1.00 Class :character Class :character Class :character
## Median : 2.00 Mode :character Mode :character Mode :character
## Mean : 13.34
## 3rd Qu.: 7.00
## Max. :1674.00
## Estado
## Length:251
## Class :character
## Mode :character
##
##
##
library (psych)
describe (scrapdata)## vars n mean sd median trimmed mad min max
## Referencia* 1 251 126.00 72.60 126 126.00 93.40 1 251
## Fecha* 2 251 16.21 7.11 17 16.50 7.41 1 27
## Hora* 3 251 126.00 72.60 126 126.00 93.40 1 251
## Producto* 4 251 45.20 24.83 46 44.94 26.69 1 96
## Cantidad 5 251 13.34 105.90 2 3.95 1.48 0 1674
## Unidad.de.medida* 6 251 2.00 0.06 2 2.00 0.00 1 2
## Ubicación.de.origen* 7 251 3.47 0.86 4 3.60 0.00 1 4
## Ubicación.de.desecho* 8 251 2.00 0.06 2 2.00 0.00 1 2
## Estado* 9 251 2.00 0.06 2 2.00 0.00 1 2
## range skew kurtosis se
## Referencia* 250 0.00 -1.21 4.58
## Fecha* 26 -0.29 -0.99 0.45
## Hora* 250 0.00 -1.21 4.58
## Producto* 95 0.01 -0.80 1.57
## Cantidad 1674 15.37 237.90 6.68
## Unidad.de.medida* 1 -15.65 244.02 0.00
## Ubicación.de.origen* 3 -1.11 -0.62 0.05
## Ubicación.de.desecho* 1 -15.65 244.02 0.00
## Estado* 1 -15.65 244.02 0.00
str(scrapdata)## 'data.frame': 251 obs. of 9 variables:
## $ Referencia : chr "agosto 2022 (250)" "SP/08731" "SP/08730" "SP/08729" ...
## $ Fecha : chr "" "31/08/2022" "31/08/2022" "31/08/2022" ...
## $ Hora : chr "" "14:55:40" "14:49:25" "13:49:29" ...
## $ Producto : chr "" "[BACKFRAME 60% CUELLO ARMADO] 18805. 60% Backframe. Cuello Armado." "[N61506747 CAJA] N61506747. Kit. Caja." "[N61506729 SEPARADOR] N61506729. Kit. Separador." ...
## $ Cantidad : num 1674 2 1 1 31 ...
## $ Unidad.de.medida : chr "" "Unidad(es)" "Unidad(es)" "Unidad(es)" ...
## $ Ubicación.de.origen : chr "" "SAB/Calidad/Entrega de PT" "SAB/Calidad/Entrega de PT" "SAB/Calidad/Entrega de PT" ...
## $ Ubicación.de.desecho: chr "" "Virtual Locations/Scrapped" "Virtual Locations/Scrapped" "Virtual Locations/Scrapped" ...
## $ Estado : chr "" "Hecho" "Hecho" "Hecho" ...
En la base de datos existen 9 variables y 251 registros
Variable<-c("`Referencia`","`Fecha`","`Hora`","`Producto`","`Cantidad`","`Unidad.de.medida`","`Ubicación.de.origen`","`Ubicación.de.desecho`","`Estado`")
Type<-c("cualitativa (nominal)", "cuantitativa (continua)", "cuantitativa (continua)", "cualitativa (nominal)", "cualitativa (nominal)", "cualitativa (nominal)", "cualitativa (nominal)", "cualitativa (nominal)", "cualitativa (nominal)" )
table<-data.frame(Variable,Type)
knitr::kable(table)| Variable | Type |
|---|---|
Referencia |
cualitativa (nominal) |
Fecha |
cuantitativa (continua) |
Hora |
cuantitativa (continua) |
Producto |
cualitativa (nominal) |
Cantidad |
cualitativa (nominal) |
Unidad.de.medida |
cualitativa (nominal) |
Ubicación.de.origen |
cualitativa (nominal) |
Ubicación.de.desecho |
cualitativa (nominal) |
Estado |
cualitativa (nominal) |
Variable<-c("`Cantidad`")
Type<-c("Unidades")
table<-data.frame(Variable,Type)
knitr::kable(table)| Variable | Type |
|---|---|
Cantidad |
Unidades |
# install.packages("tidyverse")
library(tidyverse)## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6 ✔ purrr 0.3.4
## ✔ tibble 3.1.8 ✔ dplyr 1.0.10
## ✔ tidyr 1.2.0 ✔ stringr 1.4.1
## ✔ readr 2.1.2 ✔ forcats 0.5.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ ggplot2::%+%() masks psych::%+%()
## ✖ ggplot2::alpha() masks psych::alpha()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
La técnica 1 fue realizada debido a que para poder realizar trabajos y análisis con la fecha y hora es necesario convertirlos a números enteros y así poder hacer las variables cuantitativas.
Convertir de caracter a fecha
scrapdata$Fecha <- as.Date(scrapdata$Fecha, format = "%d/%m/%Y")
tibble(scrapdata)## # A tibble: 251 × 9
## Referencia Fecha Hora Produ…¹ Canti…² Unida…³ Ubica…⁴ Ubica…⁵ Estado
## <chr> <date> <chr> <chr> <dbl> <chr> <chr> <chr> <chr>
## 1 agosto 2022 … NA "" "" 1674. "" "" "" ""
## 2 SP/08731 2022-08-31 "14:… "[BACK… 2 "Unida… "SAB/C… "Virtu… "Hech…
## 3 SP/08730 2022-08-31 "14:… "[N615… 1 "Unida… "SAB/C… "Virtu… "Hech…
## 4 SP/08729 2022-08-31 "13:… "[N615… 1 "Unida… "SAB/C… "Virtu… "Hech…
## 5 SP/08728 2022-08-31 "09:… "[3413… 31 "Unida… "SAB/P… "Virtu… "Hech…
## 6 SP/08727 2022-08-31 "09:… "[DIVI… 1 "Unida… "SAB/P… "Virtu… "Hech…
## 7 SP/08726 2022-08-31 "09:… "[DIVI… 1 "Unida… "SAB/P… "Virtu… "Hech…
## 8 SP/08725 2022-08-31 "09:… "[CHAR… 1 "Unida… "SAB/P… "Virtu… "Hech…
## 9 SP/08724 2022-08-31 "09:… "[CELD… 9 "Unida… "SAB/P… "Virtu… "Hech…
## 10 SP/08723 2022-08-31 "09:… "[TAPA… 2 "Unida… "SAB/P… "Virtu… "Hech…
## # … with 241 more rows, and abbreviated variable names ¹Producto, ²Cantidad,
## # ³Unidad.de.medida, ⁴Ubicación.de.origen, ⁵Ubicación.de.desecho
Convertir de caracter a entero
scrapdata$Hora <- substr(scrapdata$Hora, start = 1, stop = 2)
tibble (scrapdata)## # A tibble: 251 × 9
## Referencia Fecha Hora Produ…¹ Canti…² Unida…³ Ubica…⁴ Ubica…⁵ Estado
## <chr> <date> <chr> <chr> <dbl> <chr> <chr> <chr> <chr>
## 1 agosto 2022 … NA "" "" 1674. "" "" "" ""
## 2 SP/08731 2022-08-31 "14" "[BACK… 2 "Unida… "SAB/C… "Virtu… "Hech…
## 3 SP/08730 2022-08-31 "14" "[N615… 1 "Unida… "SAB/C… "Virtu… "Hech…
## 4 SP/08729 2022-08-31 "13" "[N615… 1 "Unida… "SAB/C… "Virtu… "Hech…
## 5 SP/08728 2022-08-31 "09" "[3413… 31 "Unida… "SAB/P… "Virtu… "Hech…
## 6 SP/08727 2022-08-31 "09" "[DIVI… 1 "Unida… "SAB/P… "Virtu… "Hech…
## 7 SP/08726 2022-08-31 "09" "[DIVI… 1 "Unida… "SAB/P… "Virtu… "Hech…
## 8 SP/08725 2022-08-31 "09" "[CHAR… 1 "Unida… "SAB/P… "Virtu… "Hech…
## 9 SP/08724 2022-08-31 "09" "[CELD… 9 "Unida… "SAB/P… "Virtu… "Hech…
## 10 SP/08723 2022-08-31 "09" "[TAPA… 2 "Unida… "SAB/P… "Virtu… "Hech…
## # … with 241 more rows, and abbreviated variable names ¹Producto, ²Cantidad,
## # ³Unidad.de.medida, ⁴Ubicación.de.origen, ⁵Ubicación.de.desecho
scrapdata$Hora <- as.integer(scrapdata$Hora)
str(scrapdata)## 'data.frame': 251 obs. of 9 variables:
## $ Referencia : chr "agosto 2022 (250)" "SP/08731" "SP/08730" "SP/08729" ...
## $ Fecha : Date, format: NA "2022-08-31" ...
## $ Hora : int NA 14 14 13 9 9 9 9 9 9 ...
## $ Producto : chr "" "[BACKFRAME 60% CUELLO ARMADO] 18805. 60% Backframe. Cuello Armado." "[N61506747 CAJA] N61506747. Kit. Caja." "[N61506729 SEPARADOR] N61506729. Kit. Separador." ...
## $ Cantidad : num 1674 2 1 1 31 ...
## $ Unidad.de.medida : chr "" "Unidad(es)" "Unidad(es)" "Unidad(es)" ...
## $ Ubicación.de.origen : chr "" "SAB/Calidad/Entrega de PT" "SAB/Calidad/Entrega de PT" "SAB/Calidad/Entrega de PT" ...
## $ Ubicación.de.desecho: chr "" "Virtual Locations/Scrapped" "Virtual Locations/Scrapped" "Virtual Locations/Scrapped" ...
## $ Estado : chr "" "Hecho" "Hecho" "Hecho" ...
La técnica 2 fue utilizada para poder eliminar los datos que no son útiles, es decir los registros y variables que no contienen información o son irrelevantes para el análisis.
¿Cuántos NA tengo en la base de datos?
sum(is.na(scrapdata))## [1] 2
¿Cuántos NA tengo por variable?
sapply(scrapdata, function(x) sum (is.na(x)))## Referencia Fecha Hora
## 0 1 1
## Producto Cantidad Unidad.de.medida
## 0 0 0
## Ubicación.de.origen Ubicación.de.desecho Estado
## 0 0 0
Borrar todos los registros NA de una tabla
scrapdata <- na.omit(scrapdata)
summary(scrapdata) ## Referencia Fecha Hora Producto
## Length:250 Min. :2022-08-01 Min. : 8 Length:250
## Class :character 1st Qu.:2022-08-11 1st Qu.: 9 Class :character
## Mode :character Median :2022-08-19 Median :11 Mode :character
## Mean :2022-08-17 Mean :12
## 3rd Qu.:2022-08-25 3rd Qu.:14
## Max. :2022-08-31 Max. :19
## Cantidad Unidad.de.medida Ubicación.de.origen Ubicación.de.desecho
## Min. : 0.000 Length:250 Length:250 Length:250
## 1st Qu.: 1.000 Class :character Class :character Class :character
## Median : 2.000 Mode :character Mode :character Mode :character
## Mean : 6.696
## 3rd Qu.: 7.000
## Max. :96.000
## Estado
## Length:250
## Class :character
## Mode :character
##
##
##
sum(is.na(scrapdata))## [1] 0
Eliminar columnas
scrapdata <- subset (scrapdata,select = -c(Referencia,Unidad.de.medida, Estado))
summary (scrapdata)## Fecha Hora Producto Cantidad
## Min. :2022-08-01 Min. : 8 Length:250 Min. : 0.000
## 1st Qu.:2022-08-11 1st Qu.: 9 Class :character 1st Qu.: 1.000
## Median :2022-08-19 Median :11 Mode :character Median : 2.000
## Mean :2022-08-17 Mean :12 Mean : 6.696
## 3rd Qu.:2022-08-25 3rd Qu.:14 3rd Qu.: 7.000
## Max. :2022-08-31 Max. :19 Max. :96.000
## Ubicación.de.origen Ubicación.de.desecho
## Length:250 Length:250
## Class :character Class :character
## Mode :character Mode :character
##
##
##
ggplot(scrapdata, aes(x=Fecha, y=Cantidad)) +
geom_bar(stat="identity", fill="orange") + scale_fill_grey() + # Add bars to the plot
labs(title = "Relación de Fecha y Cantidad", # Add a title
subtitle = "RH empresa FORM", # Add a subtitle
caption = "Relación", # Add a caption
x = "Fecha")