Verificamos que rstudio nos lea correctamente los datos
datos <- read.csv(
"Datos Mineros.csv",
header = TRUE,
sep = ";",
dec = ".",
fileEncoding = "latin1"
)
df_activity <- data.frame(variable = datos$ACTIVITY)
library(dplyr)
##
## 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
library(stringr)
library(gt)
# Convertimos a dataframe
df_activity <- data.frame(variable = datos$ACTIVITY)
Se agrupo por parametros las cuales se repetian o tienen algo en comun.
df_activity$grupo <- case_when(
str_detect(df_activity$variable, regex("DRILL FACE|RIB|SIDE|DOWN", ignore_case = TRUE)) ~
"PERFORACIÓN / FRENTE",
str_detect(df_activity$variable, regex("HAND TOOLS \\(NOT POWERED\\)", ignore_case = TRUE)) ~
"HERRAMIENTAS MANUALES",
str_detect(df_activity$variable, regex("HAND TOOLS \\(POWERED\\)", ignore_case = TRUE)) ~
"HERRAMIENTAS MOTORIZADAS",
str_detect(df_activity$variable, regex("MACHINE MAINTENANCE", ignore_case = TRUE)) ~
"MANTENIMIENTO",
str_detect(df_activity$variable, regex("HANDLING SUPPLIES OR MATERIAL", ignore_case = TRUE)) ~
"MANIPULACIÓN DE MATERIALES",
str_detect(df_activity$variable, regex("HANDLING COAL|ROCK|ORE", ignore_case = TRUE)) ~
"MANIPULACIÓN DE MINERAL",
str_detect(df_activity$variable, regex("HAULAGE|DUMP TRUCK|FORK LIFT|UTILITY TRUCK|WATER TRUCK",
ignore_case = TRUE)) ~
"TRANSPORTE / HAULAJE",
str_detect(df_activity$variable, regex("ROOF BOLTER|UNDERGROUND EQUIPMENT|SURFACE EQUIPMENT",
ignore_case = TRUE)) ~
"OPERACIÓN DE EQUIPOS",
str_detect(df_activity$variable, regex("WALKING|RUNNING", ignore_case = TRUE)) ~
"DESPLAZAMIENTO",
str_detect(df_activity$variable, regex("GETTING ON OR OFF EQUIPMENT", ignore_case = TRUE)) ~
"SUBIR / BAJAR EQUIPOS",
str_detect(df_activity$variable, regex("OFFICE AND LAB WORK|CLERICAL", ignore_case = TRUE)) ~
"TRABAJO ADMINISTRATIVO",
str_detect(df_activity$variable, regex("NO VALUE FOUND", ignore_case = TRUE)) ~
"SIN VALOR",
TRUE ~ "OTRAS ACTIVIDADES"
)
Las actividades laborales fueron clasificadas según su similitud operativa y organizadas de acuerdo con un criterio de riesgo creciente en el entorno minero, considerando el nivel de exposición física y operacional de cada actividad.
# DEFINIR ORDEN (VARIABLE ORDINAL)
orden_grupos <- c(
"TRABAJO ADMINISTRATIVO",
"DESPLAZAMIENTO",
"HERRAMIENTAS MANUALES",
"HERRAMIENTAS MOTORIZADAS",
"MANIPULACIÓN DE MATERIALES",
"MANIPULACIÓN DE MINERAL",
"TRANSPORTE / HAULAJE",
"OPERACIÓN DE EQUIPOS",
"SUBIR / BAJAR EQUIPOS",
"MANTENIMIENTO",
"PERFORACIÓN / FRENTE",
"SIN VALOR",
"OTRAS ACTIVIDADES"
)
df_activity$grupo <- factor(
df_activity$grupo,
levels = orden_grupos,
ordered = TRUE
)
TDF_activity <- df_activity %>%
count(grupo, name = "ni") %>%
arrange(grupo) %>%
mutate(
hi = round(ni / sum(ni) * 100, 0)
)
# Agregar totale
TDF_activity_completo <- rbind(
TDF_activity,
data.frame(grupo = "TOTAL", ni = sum(TDF_activity$ni), hi = 100)
)
print(TDF_activity_completo)
## grupo ni hi
## 1 TRABAJO ADMINISTRATIVO 4 0
## 2 DESPLAZAMIENTO 441 9
## 3 HERRAMIENTAS MANUALES 460 9
## 4 HERRAMIENTAS MOTORIZADAS 115 2
## 5 MANIPULACIÓN DE MATERIALES 779 16
## 6 MANIPULACIÓN DE MINERAL 98 2
## 7 TRANSPORTE / HAULAJE 118 2
## 8 OPERACIÓN DE EQUIPOS 278 6
## 9 SUBIR / BAJAR EQUIPOS 268 5
## 10 MANTENIMIENTO 673 14
## 11 PERFORACIÓN / FRENTE 42 1
## 12 SIN VALOR 591 12
## 13 OTRAS ACTIVIDADES 1078 22
## 14 TOTAL 4945 100
tabla_activity <- TDF_activity_completo %>%
gt() %>%
tab_header(
title = md("Tabla N° 1"),
subtitle = md("Distribución de Frecuencias de la Actividad")
) %>%
tab_source_note(
source_note = md("Autor: Grupo1")
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(rows = grupo == "TOTAL")
)
tabla_activity
| Tabla N° 1 | ||
| Distribución de Frecuencias de la Actividad | ||
| grupo | ni | hi |
|---|---|---|
| TRABAJO ADMINISTRATIVO | 4 | 0 |
| DESPLAZAMIENTO | 441 | 9 |
| HERRAMIENTAS MANUALES | 460 | 9 |
| HERRAMIENTAS MOTORIZADAS | 115 | 2 |
| MANIPULACIÓN DE MATERIALES | 779 | 16 |
| MANIPULACIÓN DE MINERAL | 98 | 2 |
| TRANSPORTE / HAULAJE | 118 | 2 |
| OPERACIÓN DE EQUIPOS | 278 | 6 |
| SUBIR / BAJAR EQUIPOS | 268 | 5 |
| MANTENIMIENTO | 673 | 14 |
| PERFORACIÓN / FRENTE | 42 | 1 |
| SIN VALOR | 591 | 12 |
| OTRAS ACTIVIDADES | 1078 | 22 |
| TOTAL | 4945 | 100 |
| Autor: Grupo1 | ||
#Comprobación del tamaño
sum(TDF_activity$ni)
## [1] 4945
sum(TDF_activity$hi)
## [1] 100
barplot(TDF_activity$ni,
main = "Gráfica Nº1: Frecuencia de la Actividad",
xlab = "Grupo de Actividad",
ylab = "Cantidad (ni)",
col = "steelblue",
names.arg = TDF_activity$grupo,
cex.names = 0.4,
las = 2)
barplot(TDF_activity$ni,
main = "Gráfica Nº2: Frecuencia de la Actividad (Global)",
xlab = "Grupo de Daños",
ylab = "Cantidad (ni)",
col = "steelblue",
names.arg = TDF_activity$ni,
cex.names = 0.4,
las = 2,
ylim = c(0, max(TDF_activity$ni) * 1.2))
barplot(TDF_activity$hi,
main = "Gráfica Nº3: Porcentaje de la Actividad",
xlab = "Grupo de Actividad",
ylab = "Porcentaje (%)",
col = "steelblue",
names.arg = TDF_activity$grupo,
cex.names = 0.6,
las = 2,
ylim = c(0, 22))
barplot(TDF_activity$hi,
main = "Gráfica Nº4: Porcentaje de la Actividad (Global)",
xlab = "Naturaleza del Daño",
ylab = "Porcentaje (%)",
col = "steelblue",
names.arg = TDF_activity$hi,
cex.names = 0.4,
las = 2,
ylim = c(0, 100))
El diagrama circular representa la distribución porcentual de las actividades agrupadas en una variable ordinal, donde cada sector muestra la proporción relativa de cada grupo de actividad respecto al total, permitiendo visualizar su peso relativo dentro del conjunto analizado.
Colores <- colorRampPalette(c("lightskyblue", "darkblue"))
etiquetas <- paste(TDF_activity$hi, "%", sep = "")
pie(TDF_activity$hi,
radius = 0.7,
col = Colores(nrow(TDF_activity)),
main = "Gráfica Nº5: Porcentaje de la Actividad",
labels = etiquetas)
legend(x = 1, y = 0.5,
title = "Grupo de Actividad",
legend = TDF_activity$grupo,
fill = Colores(nrow(TDF_activity)),
cex = 0.4,
title.cex = 0.8)
moda_ACTIVIDAD <- TDF_activity[TDF_activity$ni == max(TDF_activity$ni), ]
print(moda_ACTIVIDAD)
## grupo ni hi
## 13 OTRAS ACTIVIDADES 1078 22
'13 OTRAS ACTIVIDADES 1078 22'
## [1] "13 OTRAS ACTIVIDADES 1078 22"
# Calcular frecuencias acumuladas
TDF_activity <- TDF_activity %>%
mutate(
Ni = cumsum(ni),
Hi_acum = cumsum(hi)
)
# Total de observaciones
N <- sum(TDF_activity$ni)
# Posición de la mediana
pos_mediana <- N / 2
# Mediana
mediana_ACTIVIDAD <- TDF_activity %>%
filter(Ni >= pos_mediana) %>%
slice(1)
print(mediana_ACTIVIDAD)
## grupo ni hi Ni Hi_acum
## 1 SUBIR / BAJAR EQUIPOS 268 5 2561 51
La variable “ACTIVIDAD” fluctúa entre “TRABAJO ADMINISTRATIVO” y “OTRAS ACTIVIDADES”, y gira en torno a “TRANSPORTE / HAULAJE” de la distribución de accidentes laborales.