CARGA DE DATOS

CARGA DE DATOS

knitr::opts_chunk$set(
  echo = TRUE,
  message = FALSE,
  warning = FALSE,
  fig.align = "center"
)

# Carga de datos limpia para evitar errores de sintaxis
datos <- read.csv("C:/Users/Martin/Desktop/Estadistica/CMDB_Data.csv", header = TRUE, sep = ";", dec = ".", fileEncoding = "latin1")

# Limpieza básica para evitar valores en blanco o nulos en el nombre del proyecto
datos$PROJECT_NAME[datos$PROJECT_NAME == ""] <- "Desconocido"
datos$PROJECT_NAME[is.na(datos$PROJECT_NAME)] <- "Desconocido"
datos$PROJECT_NAME[tolower(datos$PROJECT_NAME) == "unknown"] <- "Desconocido"

# Verificación inicial del set de datos
str(datos)
## 'data.frame':    1366 obs. of  103 variables:
##  $ ï..LAB_ID            : chr  "C355417" "C360759" "C360762" "C360763" ...
##  $ PREVIOUS_LAB_ID1     : chr  "" "" "" "" ...
##  $ PREVIOUS_LAB_ID2     : chr  "" "" "" "" ...
##  $ PREVIOUS_LAB_ID3     : chr  "" "" "" "" ...
##  $ FIELD_ID             : chr  "RM0001" "RM0027" "RM0030" "RM0031" ...
##  $ JOB_ID               : chr  "MRP11968" "MRP12307" "MRP12307" "MRP12307" ...
##  $ PREVIOUS_JOB_ID1     : chr  "" "" "" "" ...
##  $ PREVIOUS_JOB_ID2     : chr  "" "" "" "" ...
##  $ PREVIOUS_JOB_ID3     : chr  "" "" "" "" ...
##  $ SUBMITTER            : chr  "Rare Metals Task" "Rare Metals Task" "Rare Metals Task" "Rare Metals Task" ...
##  $ PROJECT_NAME         : chr  "Critical and Rare Metals" "Critical and Rare Metals" "Critical and Rare Metals" "Critical and Rare Metals" ...
##  $ X0                   : chr  "30/6/2011" "31/8/2011" "31/8/2011" "31/8/2011" ...
##  $ COLLECTION           : chr  "Mackay-Keck Ore Deposits Collection" "Mackay-Stanford Ore Deposits Collection" "Mackay-Stanford Ore Deposits Collection" "Mackay-Stanford Ore Deposits Collection" ...
##  $ COLLECTION_ID        : chr  "PHNC08_39_1183" "OD21441" "OD22811" "OD25716" ...
##  $ CONTINENT            : chr  "North America" "South America" "South America" "Africa" ...
##  $ COUNTRY              : chr  "United States" "Chile" "Chile" "South Africa" ...
##  $ STATE_PROVINCE       : chr  "Nevada" "Antofagasta" "Tarapacá" "Transvaal" ...
##  $ COUNTY               : chr  "Lyon" "El Loa" "El Tamarugal" "" ...
##  $ DISTRICT_NAME        : chr  "Yerington" "Chuquicamata" "Collahuasi/Quebrada Blanca" "" ...
##  $ DEPOSIT_NAME         : chr  "Pumpkin Hollow" "" "" "" ...
##  $ MINE_NAME            : chr  "Pumpkin Hollow" "Chuquicamata mine" "Collahuasi district" "" ...
##  $ DISTRICT_NAME_COLLECT: chr  "Yerington" "" "" "" ...
##  $ DEPOSIT_NAME_COLLECT : chr  "" "" "" "" ...
##  $ MINE_NAME_COLLECT    : chr  "Pumpkin Hollow" "Chuquicamata" "Poduosa mine" "Messina Mines Ltd." ...
##  $ LOCATE_DESC          : chr  "" "" "Level 25" "" ...
##  $ LATITUDE             : chr  "38,94021" "-22,2871" "-21,0309" "-24,7" ...
##  $ LONGITUDE            : chr  "-119,05178" "-68,8991" "-68,74951" "29,3" ...
##  $ DATUM                : chr  "WGS84" "WGS84" "WGS84" "" ...
##  $ LATITUDE_COLLECT     : chr  "38,92492" "22,28944" "" "" ...
##  $ LONGITUDE_COLLECT    : chr  "-119,1071" "-68,90111" "" "" ...
##  $ DATUM_COLLECT        : chr  "" "WGS84" "" "" ...
##  $ COORDINATES_QUAL     : chr  "100 m" "0m" "" "" ...
##  $ COORDINATES_SOURCE   : chr  "1) iTouchMap.com, approx, A. Orkild-Norton; 2) Mineral Resource Deposit Database Deposit ID 10174173, ore body, M. Granitto" "1) Mindat.org, approx, A. Orkild-Norton; 2) Open-File Report 2017-1079 ID 549, mine, M. Granitto" "1) No coordinates; 2) Mineral Resource Deposit Database Deposit ID 10057511, district, M. Granitto" "1) No coordinates; 2) Google Earth Pro, approx ctr of former province of Transvaal, M. Granitto" ...
##  $ PRIMARY_CLASS        : chr  "rock" "rock" "rock" "rock" ...
##  $ SYSTEM_TYPE          : chr  "IOA-IOCG" "Porphyry Cu-Mo-Au" "Porphyry Cu-Mo-Au" "IOA-IOCG" ...
##  $ DEPOSIT_TYPE         : chr  "IOCG" "Supergene Cu" "Porphyry Cu" "IOCG" ...
##  $ SAMPLE_DESC          : chr  "Nearly solid chalcopyrite mixed with small light brown irregular inclusions of unknown mineralogy; clouds of ma"| __truncated__ "Chalcocite-bronchatite-antlerite(?); highly microfractured igneous rock with green copper sulfates coating microfractures" "Bornite-chalcopyrite; mostly massive chalcopyrite with numerous inclusions of micro-chalcopyrite and widely sca"| __truncated__ "Massive chalcopyrite, IOCG in shear zone; mostly massive fine grain cuprite with widely distributed malachite t"| __truncated__ ...
##  $ Al_pct_AES_ST        : chr  "0,33" "6,65" "0,46" "0,7" ...
##  $ Ca_pct_AES_ST        : chr  "1,1" "0,4" "-0,1" "0,3" ...
##  $ Fe_pct_AES_ST        : chr  "42,4" "0,25" "6,98" "27,8" ...
##  $ K_pct_AES_ST         : chr  "-0,1" "6,1" "0,2" "-0,1" ...
##  $ Mg_pct_AES_ST        : chr  "0,57" "0,1" "0,01" "0,33" ...
##  $ Mn_pct_AES_ST        : chr  "0,02" "-0,01" "-0,01" "-0,01" ...
##  $ P_pct_AES_ST         : chr  "-0,01" "0,01" "0,05" "0,01" ...
##  $ S_pct_AES_ST         : chr  "" "" "" "" ...
##  $ Si_pct_AES_ST        : chr  "" "" "" "" ...
##  $ Ti_pct_AES_ST        : chr  "0,01" "0,11" "-0,01" "-0,01" ...
##  $ F_pct_ISE_Fuse       : chr  "" "" "" "" ...
##  $ Ag_ppm_MS_ST         : chr  "58" "6" "468" "16" ...
##  $ As_ppm_MS_ST         : chr  "-30" "-30" "90" "-30" ...
##  $ Au_ppm               : chr  "" "" "" "" ...
##  $ Au_AM                : chr  "" "" "" "" ...
##  $ B_ppm_AES_ST         : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ Ba_ppm_AES_ST        : chr  "-0,5" "924" "121" "174" ...
##  $ Be_ppm_AES_ST        : int  -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 ...
##  $ Bi_ppm_MS_ST         : chr  "1,5" "3,6" "190" "0,4" ...
##  $ Cd_ppm_MS_ST         : chr  "3,6" "-0,2" "0,9" "-0,2" ...
##  $ Ce_ppm_MS_ST         : chr  "0,4" "8,8" "16,3" "3,5" ...
##  $ Co_ppm_MS_ST         : chr  "209" "-0,5" "1,3" "44,8" ...
##  $ Cr_ppm_AES_ST        : int  -10 -10 -10 30 20 20 60 40 20 10 ...
##  $ Cs_ppm_MS_ST         : chr  "0,5" "1,4" "0,2" "-0,1" ...
##  $ Cu_ppm_AES_ST        : chr  "50000,11111" "23300" "50000,11111" "50000,11111" ...
##  $ Dy_ppm_MS_ST         : chr  "-0,05" "0,32" "1,38" "0,37" ...
##  $ Er_ppm_MS_ST         : chr  "-0,05" "0,22" "0,77" "0,23" ...
##  $ Eu_ppm_MS_ST         : chr  "-0,05" "0,14" "0,17" "0,1" ...
##  $ Ga_ppm_MS_ST         : chr  "5" "15" "6" "3" ...
##  $ Gd_ppm_MS_ST         : chr  "-0,05" "0,45" "1,5" "0,39" ...
##  $ Ge_ppm_MS_ST         : int  -1 5 -1 -1 3 8 8 1 2 2 ...
##  $ Hf_ppm_MS_ST         : int  -1 4 -1 -1 5 13 12 2 3 6 ...
##  $ Ho_ppm_MS_ST         : chr  "-0,05" "0,07" "0,25" "0,07" ...
##  $ In_ppm_MS_ST         : chr  "6,4" "-0,2" "3,7" "0,2" ...
##  $ La_ppm_MS_ST         : chr  "0,2" "4,6" "7,2" "1,7" ...
##  $ Li_ppm_AES_ST        : int  -10 -10 -10 -10 30 20 20 20 -10 20 ...
##  $ Lu_ppm_MS_ST         : chr  "-0,05" "-0,05" "0,08" "-0,05" ...
##  $ Mo_ppm_MS_ST         : chr  "-2" "60" "3" "2" ...
##  $ Nb_ppm_MS_ST         : chr  "-1" "4" "-1" "-1" ...
##  $ Nd_ppm_MS_ST         : chr  "0,2" "3,8" "9,1" "1,7" ...
##  $ Ni_ppm_AES_ST        : chr  "144" "6" "-5" "48" ...
##  $ Pb_ppm_MS_ST         : chr  "23" "16" "188" "39" ...
##  $ Pd_ppm_FA_MS         : chr  "" "" "" "" ...
##  $ Pr_ppm_MS_ST         : chr  "-0,05" "1,09" "2,21" "0,46" ...
##  $ Pt_ppm_FA_MS         : chr  "" "" "" "" ...
##  $ Rb_ppm_MS_ST         : chr  "1,2" "148" "7,1" "0,7" ...
##  $ Re_ppm_MS_HF         : chr  "" "" "" "" ...
##  $ Sb_ppm_MS_ST         : chr  "1,2" "2,4" "2,9" "0,3" ...
##  $ Sc_ppm_AES_ST        : int  -5 -5 -5 -5 11 6 15 10 5 6 ...
##  $ Se_ppm_MS_ST         : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ Sm_ppm_MS_ST         : chr  "-0,1" "0,6" "1,6" "0,4" ...
##  $ Sn_ppm_MS_ST         : chr  "2" "3" "106" "-1" ...
##  $ Sr_ppm_AES_ST        : chr  "26,6" "114" "22,5" "38,4" ...
##  $ Ta_ppm_MS_ST         : chr  "-0,5" "-0,5" "-0,5" "-0,5" ...
##  $ Tb_ppm_MS_ST         : chr  "-0,05" "0,07" "0,23" "-0,05" ...
##  $ Te_ppm_MS_ST         : chr  "" "" "" "" ...
##  $ Th_ppm_MS_ST         : chr  "0,2" "9,7" "2,6" "0,2" ...
##  $ Tl_ppm_MS_ST         : chr  "-0,5" "0,5" "-0,5" "-0,5" ...
##  $ Tm_ppm_MS_ST         : chr  "-0,05" "-0,05" "0,08" "-0,05" ...
##  $ U_ppm_MS_ST          : chr  "0,3" "1,75" "0,63" "34,8" ...
##  $ V_ppm_AES_ST         : int  51 24 -5 493 68 20 40 159 39 61 ...
##  $ W_ppm_MS_ST          : chr  "-1" "28" "22" "11" ...
##   [list output truncated]

Se cargaron correctamente los datos para el análisis de la variable

ANÁLISIS UNIVARIADO (TABLA GENERAL)

DISTRIBUCIÓN DE FRECUENCIAS POR PROYECTO

# Cargar las librerías necesarias
library(dplyr)
library(gt)

# 1. CONTAR LAS MUESTRAS POR PROYECTO Y ELIMINAR DESCONOCIDOS
TDFPROJ <- table(datos$PROJECT_NAME)
TDFPROJ <- TDFPROJ[names(TDFPROJ) != "Desconocido"]

# 2. ORDENAR DE MAYOR A MENOR (Sin cortes, ya que son pocas opciones)
TDFPROJ_ORD <- sort(TDFPROJ, decreasing = TRUE)
tabla_agrupada <- as.data.frame(TDFPROJ_ORD)
colnames(tabla_agrupada) <- c("Proyecto", "ni")

# 3. CALCULAR PROPORCIONES Y PORCENTAJES
total_muestras <- sum(TDFPROJ_ORD)
tabla_agrupada$hi <- tabla_agrupada$ni / total_muestras
tabla_agrupada$hi_porc <- round(tabla_agrupada$hi * 100, 2)

# 4. CREAR LA FILA DE TOTALES
Total <- data.frame(Proyecto = "TOTAL GENERAL",
                    ni = sum(tabla_agrupada$ni),
                    hi = sum(tabla_agrupada$hi),
                    hi_porc = sum(tabla_agrupada$hi_porc))

# 5. UNIR TODO EN UNA SOLA TABLA FINAL
tabla_final <- rbind(tabla_agrupada, Total)

# 6. MOSTRAR LA TABLA CON LA ESTÉTICA 'gt'
tabla_proj_gt <- tabla_final %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N° 1**"),
    subtitle = md("Distribución de muestras de minerales críticos por Proyecto")
  ) %>%
  tab_source_note(
    source_note = md("Autores: Grupo 1 <br> Semestre 2026 - 2026")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black",
    row.striping.include_table_body = TRUE
  )

# Renderizar la tabla en el documento
tabla_proj_gt
Tabla N° 1
Distribución de muestras de minerales críticos por Proyecto
Proyecto ni hi hi_porc
Critical and Rare Metals 1230 0.90043924 90.04
Rare Metals 136 0.09956076 9.96
TOTAL GENERAL 1366 1.00000000 100.00
Autores: Grupo 1
Semestre 2026 - 2026

VISUALIZACIÓN DE COMPARATIVAS BÁSICAS

GRÁFICA DE BARRAS LOCAL Y GLOBAL

# Restauramos los márgenes a su tamaño estándar
par(mar = c(5, 4, 4, 2) + 0.1)

limite_y_local <- max(TDFPROJ_ORD) * 1.2

# 1. PRIMERA GRÁFICA (LOCAL)
barplot(TDFPROJ_ORD, 
        main = "Gráfica 1: Proyectos (LOCAL)", 
        ylab = "Cantidad de muestras",                               
        col = "pink", 
        las = 1,               # Texto horizontal
        cex.names = 0.8,       
        ylim = c(0, limite_y_local))    

# 2. SEGUNDA GRÁFICA (GLOBAL - EJE Y AL TOTAL DE DATOS)
barplot(TDFPROJ_ORD, 
        main = "Gráfica 2: Proyectos (GLOBAL)",
        ylab = "Cantidad de muestras totales",
        col = "skyblue",
        las = 1,               # Texto horizontal
        cex.names = 0.8,
        ylim = c(0, total_muestras), 
        yaxt = "n") 

# 3. Dibujar el eje Y personalizado
puntos_eje <- unique(round(c(seq(0, total_muestras, length.out = 5), total_muestras)))
axis(2, at = puntos_eje, las = 1)

ANÁLISIS DE FRECUENCIA ABSOLUTA

ANÁLISIS DE FRECUENCIA ABSOLUTA

par(mar = c(5, 4, 4, 2) + 0.1)
freq_abs <- TDFPROJ_ORD

# 2. DIBUJAR LA GRÁFICA Y GUARDAR SUS COORDENADAS
bar_centers <- barplot(freq_abs, 
                       main = "Gráfica 3: Frecuencia Absoluta",
                       ylab = "Cantidad",
                       col = "orange",
                       las = 1,          # Texto horizontal
                       cex.names = 0.8,  
                       ylim = c(0, max(freq_abs) * 1.2))

# 3. PONER LAS ETIQUETAS NUMÉRICAS ENCIMA DE LAS BARRAS
text(x = bar_centers,                    
     y = freq_abs,         
     labels = freq_abs,                  
     pos = 3,                            
     cex = 0.8,
     col = "black")

ANÁLISIS DE FRECUENCIA RELATIVA (PORCENTAJES)

ANÁLISIS DE FRECUENCIA RELATIVA (PORCENTAJES)

par(mar = c(5, 4, 4, 2) + 0.1)

# 1. TRANSFORMAR LAS CANTIDADES EN PORCENTAJES
freq_rel_porc <- round((TDFPROJ_ORD / total_muestras) * 100, 2)  

# 2. DIBUJAR LAS BARRAS Y PERSONALIZAR EL LIENZO
bar_centers_rel <- barplot(freq_rel_porc, 
                           main = "Gráfica 4: Distribución Porcentual", 
                           ylab = "Porcentaje del Total (%)", 
                           col = "orchid", 
                           las = 1,          # Texto horizontal
                           cex.names = 0.8,
                           ylim = c(0, max(freq_rel_porc) * 1.3), 
                           yaxt = "n",       
                           yaxs = "i")       

# 3. CONSTRUIR UN EJE Y PERSONALIZADO
axis(2, at = seq(0, max(freq_rel_porc) + 2, length.out = 5), 
     labels = paste0(round(seq(0, max(freq_rel_porc) + 2, length.out = 5), 1), "%"), 
     las = 1, cex.axis = 0.8) 

# 4. COLOCAR LAS ETIQUETAS CON EL SÍMBOLO "%" EN LAS BARRAS
text(x = bar_centers_rel, 
     y = freq_rel_porc, 
     labels = paste0(freq_rel_porc, "%"), 
     pos = 3, 
     cex = 0.8, 
     col = "black")

COMPOSICIÓN GLOBAL (GRÁFICA CIRCULAR)

GRÁFICA CIRCULAR

# 1. ALISTAR LOS DATOS 
hi_pie_porc <- round(prop.table(TDFPROJ_ORD) * 100, 1) 
colores <- c("#66C2A5", "#FC8D62", "#8DA0CB") # Colores simplificados
etiquetas_leyenda <- paste0(names(TDFPROJ_ORD), " (", hi_pie_porc, "%)")

# 2. AJUSTAR EL LIENZO DE TRABAJO
par(mar = c(2, 2, 3, 14), xpd = TRUE)

# 3. DIBUJAR LA GRÁFICA CIRCULAR 
pie(hi_pie_porc, 
    labels = NA,  
    col = colores, 
    main = "Gráfica 5: Proporción de Proyectos", 
    radius = 0.9) 

# 4. MARCAR LAS COORDENADAS DEL CUADRO DE LEYENDA
x0 <- 1.1    
x1 <- 2.8    
y1 <- 0.9    
y0 <- -0.5   

# 5. DIBUJAR EL CUADRO BLANCO DE FONDO
rect(xleft = x0, ybottom = y0, xright = x1, ytop = y1, col = "white", border = "black")

# 6. PONER EL TÍTULO DENTRO DE LA TARJETA
text(x = (x0 + x1)/2, y = y1 - 0.15, labels = "Proyectos", font = 2, cex = 1.0)

# 7. LLENAR LA TARJETA CON LOS COLORES Y PORCENTAJES
legend(x = (x0 + x1)/2,             
       y = y1 - 0.25,      
       legend = etiquetas_leyenda, 
       fill = colores, 
       cex = 0.8,          
       bty = "n",                    
       xjust = 0.5,                  
       y.intersp = 1.4)

CONCLUSIÓN

CONCLUSIÓN DE LA VARIABLE PROJECT_NAME

El análisis univariado de la variable PROJECT_NAME demuestra una distribución dicotómica muy marcada (o de muy baja variabilidad categórica) en los registros de la base de datos minera. Al contar únicamente con un par de proyectos catalogados, la dispersión de los esfuerzos de exploración es nula frente a lo que suele observarse a nivel de condados o depósitos. La representación gráfica evidencia claramente cuál de los proyectos concentró la mayor asignación de recursos o campañas de muestreo, lo cual facilita enormemente la focalización de futuros reprocesamientos de la información geoquímica en el área dominante.