CARGA DE DATOS

CARGA DE DATOS

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

datos <- read.csv2(
  "C:/Users/Martin/Desktop/Estadistica/CMDB_Data.csv",
  header = TRUE,
  fileEncoding = "latin1",
  check.names = FALSE,
  stringsAsFactors = FALSE
)

names(datos) <- trimws(names(datos))

# Limpieza de la variable fuente de coordenadas
datos$COORDINATES_SOURCE[datos$COORDINATES_SOURCE == ""] <- "Desconocido"
datos$COORDINATES_SOURCE[is.na(datos$COORDINATES_SOURCE)] <- "Desconocido"
datos$COORDINATES_SOURCE[tolower(datos$COORDINATES_SOURCE) == "unknown"] <- "Desconocido"

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" ...
##  $ 0                    : 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             : num  38.9 -22.3 -21 -24.7 62.7 ...
##  $ LONGITUDE            : num  -119.1 -68.9 -68.7 29.3 29 ...
##  $ DATUM                : chr  "WGS84" "WGS84" "WGS84" "" ...
##  $ LATITUDE_COLLECT     : num  38.9 22.3 NA NA 62.7 ...
##  $ LONGITUDE_COLLECT    : num  -119.1 -68.9 NA NA 29 ...
##  $ 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        : num  0.33 6.65 0.46 0.7 9.48 1.54 5.32 4.34 5.31 7.9 ...
##  $ Ca_pct_AES_ST        : num  1.1 0.4 -0.1 0.3 8.5 11.4 10.8 2.4 1.1 0.9 ...
##  $ Fe_pct_AES_ST        : num  42.4 0.25 6.98 27.8 8.92 10.8 14.3 10.8 1.93 3.21 ...
##  $ K_pct_AES_ST         : num  -0.1 6.1 0.2 -0.1 0.4 -0.1 1.6 2.2 1.5 3.9 ...
##  $ Mg_pct_AES_ST        : num  0.57 0.1 0.01 0.33 7.39 2.15 0.36 1.01 0.85 0.88 ...
##  $ Mn_pct_AES_ST        : num  0.02 -0.01 -0.01 -0.01 0.04 0.79 0.48 0.01 -0.01 0.02 ...
##  $ P_pct_AES_ST         : num  -0.01 0.01 0.05 0.01 0.06 0.43 0.22 0.05 0.08 0.07 ...
##  $ S_pct_AES_ST         : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Si_pct_AES_ST        : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Ti_pct_AES_ST        : num  0.01 0.11 -0.01 -0.01 0.28 0.24 0.52 0.3 0.29 0.25 ...
##  $ F_pct_ISE_Fuse       : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Ag_ppm_MS_ST         : num  58 6 468 16 21 24 92 12 10 -1 ...
##  $ As_ppm_MS_ST         : num  -30 -30 90 -30 50 -30 90 -30 -30 -30 ...
##  $ Au_ppm               : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Au_AM                : chr  "" "" "" "" ...
##  $ B_ppm_AES_ST         : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ Ba_ppm_AES_ST        : num  -0.5 924 121 174 8100 3.2 251 234 361 995 ...
##  $ Be_ppm_AES_ST        : int  -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 ...
##  $ Bi_ppm_MS_ST         : num  1.5 3.6 190 0.4 12.5 5 80.8 0.6 11.7 0.7 ...
##  $ Cd_ppm_MS_ST         : num  3.6 -0.2 0.9 -0.2 5.7 447 9.2 -0.2 -0.2 6.8 ...
##  $ Ce_ppm_MS_ST         : num  0.4 8.8 16.3 3.5 15.2 104 49.7 28.3 15.8 76.3 ...
##  $ Co_ppm_MS_ST         : num  209 -0.5 1.3 44.8 4.5 92.2 105 45.5 8 48.6 ...
##  $ Cr_ppm_AES_ST        : int  -10 -10 -10 30 20 20 60 40 20 10 ...
##  $ Cs_ppm_MS_ST         : num  0.5 1.4 0.2 -0.1 0.8 10.6 0.4 2.8 0.6 5.1 ...
##  $ Cu_ppm_AES_ST        : num  50000 23300 50000 50000 18600 ...
##  $ Dy_ppm_MS_ST         : num  -0.05 0.32 1.38 0.37 2.65 7.43 5.12 1.56 0.75 4.12 ...
##  $ Er_ppm_MS_ST         : num  -0.05 0.22 0.77 0.23 1.63 3.98 2.89 0.78 0.34 2.17 ...
##  $ Eu_ppm_MS_ST         : num  -0.05 0.14 0.17 0.1 0.42 1.5 0.99 0.66 0.37 1.14 ...
##  $ Ga_ppm_MS_ST         : num  5 15 6 3 52 19 26 17 22 27 ...
##  $ Gd_ppm_MS_ST         : num  -0.05 0.45 1.5 0.39 2.9 8.29 5.72 2.42 1.12 4.88 ...
##  $ 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         : num  -0.05 0.07 0.25 0.07 0.53 1.49 1.05 0.28 0.13 0.74 ...
##  $ In_ppm_MS_ST         : num  6.4 -0.2 3.7 0.2 0.5 26.7 5.4 0.4 -0.2 -0.2 ...
##  $ La_ppm_MS_ST         : num  0.2 4.6 7.2 1.7 5.5 40.8 26.4 13.3 7.7 39.2 ...
##  $ Li_ppm_AES_ST        : int  -10 -10 -10 -10 30 20 20 20 -10 20 ...
##  $ Lu_ppm_MS_ST         : num  -0.05 -0.05 0.08 -0.05 0.22 0.64 0.44 0.11 0.06 0.36 ...
##  $ Mo_ppm_MS_ST         : num  -2 60 3 2 14 6 473 69 3 9 ...
##  $ Nb_ppm_MS_ST         : num  -1 4 -1 -1 9 13 13 1 3 12 ...
##  $ Nd_ppm_MS_ST         : num  0.2 3.8 9.1 1.7 9.5 41.7 23.5 14.9 8 29.3 ...
##  $ Ni_ppm_AES_ST        : num  144 6 -5 48 24 26 22 23 13 21 ...
##  $ Pb_ppm_MS_ST         : num  23 16 188 39 546 6 39 -5 17 17 ...
##  $ Pd_ppm_FA_MS         : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Pr_ppm_MS_ST         : num  -0.05 1.09 2.21 0.46 2.12 10.9 5.98 3.5 2.06 8.54 ...
##  $ Pt_ppm_FA_MS         : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Rb_ppm_MS_ST         : num  1.2 148 7.1 0.7 5.2 3.4 65.8 98.8 31.8 169 ...
##  $ Re_ppm_MS_HF         : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Sb_ppm_MS_ST         : num  1.2 2.4 2.9 0.3 8.1 1.2 3.7 0.3 0.3 1.5 ...
##  $ 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         : num  -0.1 0.6 1.6 0.4 2.6 8.1 5.1 2.6 1.5 4.9 ...
##  $ Sn_ppm_MS_ST         : num  2 3 106 -1 3 19 43 7 1 2 ...
##  $ Sr_ppm_AES_ST        : num  26.6 114 22.5 38.4 284 5.3 264 149 526 446 ...
##  $ Ta_ppm_MS_ST         : num  -0.5 -0.5 -0.5 -0.5 -0.5 0.9 1.1 -0.5 -0.5 1.1 ...
##  $ Tb_ppm_MS_ST         : num  -0.05 0.07 0.23 -0.05 0.45 1.29 0.86 0.27 0.13 0.73 ...
##  $ Te_ppm_MS_ST         : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Th_ppm_MS_ST         : num  0.2 9.7 2.6 0.2 2.6 9.2 37.7 1.8 2.7 13.7 ...
##  $ Tl_ppm_MS_ST         : num  -0.5 0.5 -0.5 -0.5 -0.5 -0.5 -0.5 -0.5 -0.5 0.9 ...
##  $ Tm_ppm_MS_ST         : num  -0.05 -0.05 0.08 -0.05 0.22 0.67 0.47 0.1 -0.05 0.36 ...
##  $ U_ppm_MS_ST          : num  0.3 1.75 0.63 34.8 31.2 10.6 9.94 1.64 0.69 15.4 ...
##  $ V_ppm_AES_ST         : int  51 24 -5 493 68 20 40 159 39 61 ...
##  $ W_ppm_MS_ST          : num  -1 28 22 11 8 223 30 83 -1 37 ...
##   [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 FUENTE (TOP 10)

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

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

# 2. ORDENAR DE MAYOR A MENOR Y TOMAR EL TOP 10
TDFCOORD_ORD <- sort(TDFCOORD, decreasing = TRUE)
Top10_Coord <- head(TDFCOORD_ORD, 10)

tabla_agrupada <- data.frame(
  Fuente_de_Coordenadas = names(Top10_Coord),
  ni = as.numeric(Top10_Coord)
)

# 3. CALCULAR PROPORCIONES Y PORCENTAJES
total_muestras <- sum(TDFCOORD_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 DEL TOP 10
Total <- data.frame(
  Fuente_de_Coordenadas = "TOTAL (TOP 10)",
  ni = sum(tabla_agrupada$ni),
  hi = sum(tabla_agrupada$hi),
  hi_porc = round(sum(tabla_agrupada$hi_porc), 2)
)

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

# 6. MOSTRAR LA TABLA CON GT
tabla_coord_gt <- tabla_final %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N° 1**"),
    subtitle = md("Distribución de metadatos espaciales (Top 10 Fuentes)")
  ) %>%
  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
  )

tabla_coord_gt
Tabla N° 1
Distribución de metadatos espaciales (Top 10 Fuentes)
Fuente_de_Coordenadas ni hi hi_porc
1) iTouchMap.com, approx, A. Orkild-Norton; 2) Mineral Resource Deposit Database Deposit ID 10174173, ore body, M. Granitto 42 0.030746706 3.07
1) Colorado School of Mines collection; 2) Mineral Resource Deposit Database Deposit ID 10065038, minesite, 10 entries in Mineral Resource Deposit Database, M. Granitto; district from AZGS DI-23 23 0.016837482 1.68
1) Colorado School of Mines collection, needs transform; 2) Mineral Deposit Database Site ID UT00011, ctr of pit on imagery, M. Granitto 21 0.015373353 1.54
1) Colorado School of Mines collection; 2) Mineral Resource Deposit Database Deposit ID 10311065, district, M. Granitto 12 0.008784773 0.88
1) Don Bryant collection; 2) Mindat.org, loc, 10 Mineral Resource Deposit Database locs, M. Granitto 11 0.008052709 0.81
1) Colorado School of Mines collection; 2) Mineral Deposit Database Site ID AZ00011, ctr of pit on imagery, M. Granitto 10 0.007320644 0.73
1) Colorado School of Mines collection; 2) Mineral Resource Deposit Database Deposit ID 10046282, deposit, M. Granitto 10 0.007320644 0.73
1) Colorado School of Mines collection; 2) Mineral Resource Deposit Database Deposit ID 10065278, minesite, M. Granitto; district from MRDS 10 0.007320644 0.73
1) Mindat.org, approx, A. Orkild-Norton; 2) Mineral Resource Deposit Database Deposit ID 10106953, minesite, M. Granitto; district from USGS MIS Map I2445 10 0.007320644 0.73
1) Colorado School of Mines collection; 2) Mineral Deposit Database Site ID UT00011, ctr of pit on imagery, M. Granitto 9 0.006588580 0.66
TOTAL (TOP 10) 158 0.115666179 11.56
Autores: Grupo 1
Semestre 2026 - 2026

CLASIFICACIÓN DE FUENTES

CLASIFICACIÓN DE FUENTES

# 1. SEPARAR EL TOP 5 DE LAS DEMÁS FUENTES
Top5_Coord <- head(TDFCOORD_ORD, 5)
Otras_Coord <- sum(TDFCOORD_ORD) - sum(Top5_Coord)

# 2. CREAR UN NUEVO CONJUNTO AGRUPADO
Datos_Agrupados <- c(Top5_Coord, "Otras Fuentes" = Otras_Coord)

# 3. ESTRUCTURAR LA NUEVA TABLA
tabla_top5 <- as.data.frame(Datos_Agrupados)
colnames(tabla_top5) <- c("ni")
tabla_top5$Fuente <- rownames(tabla_top5)
tabla_top5 <- tabla_top5[, c("Fuente", "ni")] # Reordenar columnas

# 4. CALCULAR PROPORCIONES
tabla_top5$hi <- tabla_top5$ni / sum(tabla_top5$ni)
tabla_top5$hi_porc <- round(tabla_top5$hi * 100, 2)

# 5. FILA DE TOTALES GENERALES
Total_Clasif <- data.frame(Fuente = "TOTAL GENERAL", 
                           ni = sum(tabla_top5$ni), 
                           hi = sum(tabla_top5$hi), 
                           hi_porc = sum(tabla_top5$hi_porc))

tabla_final_clasif <- rbind(tabla_top5, Total_Clasif)

# 6. ACOPLAR Y MOSTRAR LA TABLA CON LA ESTÉTICA 'gt'
tabla_clasif_gt <- tabla_final_clasif %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N° 2**"),
    subtitle = md("Comparativa de las 5 fuentes principales vs el resto")
  ) %>%
  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_clasif_gt
Tabla N° 2
Comparativa de las 5 fuentes principales vs el resto
Fuente ni hi hi_porc
1) iTouchMap.com, approx, A. Orkild-Norton; 2) Mineral Resource Deposit Database Deposit ID 10174173, ore body, M. Granitto 42 0.030746706 3.07
1) Colorado School of Mines collection; 2) Mineral Resource Deposit Database Deposit ID 10065038, minesite, 10 entries in Mineral Resource Deposit Database, M. Granitto; district from AZGS DI-23 23 0.016837482 1.68
1) Colorado School of Mines collection, needs transform; 2) Mineral Deposit Database Site ID UT00011, ctr of pit on imagery, M. Granitto 21 0.015373353 1.54
1) Colorado School of Mines collection; 2) Mineral Resource Deposit Database Deposit ID 10311065, district, M. Granitto 12 0.008784773 0.88
1) Don Bryant collection; 2) Mindat.org, loc, 10 Mineral Resource Deposit Database locs, M. Granitto 11 0.008052709 0.81
Otras Fuentes 1257 0.920204978 92.02
TOTAL GENERAL 1366 1.000000000 100.00
Autores: Grupo 1
Semestre 2026 - 2026

VISUALIZACIÓN DE COMPARATIVAS BÁSICAS

GRÁFICA DE BARRAS LOCAL Y GLOBAL (TOP 10)

# Ajustar margen inferior por si los textos de las fuentes son largos
par(mar = c(12, 4, 4, 2) + 0.1)

Top10_Coord <- head(TDFCOORD_ORD, 10)

# Límite para la gráfica LOCAL (solo un poco más alto que el 1er lugar)
limite_y_local <- max(Top10_Coord) * 1.2

# 1. PRIMERA GRÁFICA (LOCAL)
barplot(Top10_Coord, 
        main = "Gráfica 1: Top 10 Fuentes (LOCAL)", 
        ylab = "Frecuencia de uso",                               
        col = "pink", 
        las = 2,               # Pone las etiquetas numéricas verticales
        cex.names = 0.7,       
        ylim = c(0, limite_y_local))    

# 2. SEGUNDA GRÁFICA (GLOBAL - EJE Y AL TOTAL DE DATOS)
# Usamos 'total_muestras' (calculado en el bloque anterior) para el tope del eje Y
barplot(Top10_Coord, 
        main = "Gráfica 2: Top 10 Fuentes (GLOBAL)",
        ylab = "Frecuencia de uso",
        col = "skyblue",
        las = 2,
        cex.names = 0.7,
        ylim = c(0, total_muestras), # Forzamos el techo al total de datos
        yaxt = "n") 

# 3. Dibujar el eje Y personalizado
# Creamos una secuencia de 5 puntos y nos aseguramos de que el total exacto aparezca arriba
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 (TOP 10)

par(mar = c(12, 4, 4, 2) + 0.1)
freq_abs <- Top10_Coord

# 2. DIBUJAR LA GRÁFICA Y GUARDAR SUS COORDENADAS
bar_centers <- barplot(freq_abs, 
                       main = "Gráfica 3: Frecuencia Absoluta (Top 10 Fuentes)",
                       ylab = "Cantidad",
                       col = "orange",
                       las = 2,          
                       cex.names = 0.7,  
                       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(12, 4, 4, 2) + 0.1)

# 1. TRANSFORMAR LAS CANTIDADES EN PORCENTAJES
freq_rel_porc <- round((Top10_Coord / 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 (Top 10 Fuentes)", 
                           ylab = "Porcentaje (%)", 
                           col = "orchid", 
                           las = 2, 
                           cex.names = 0.7,
                           ylim = c(0, max(freq_rel_porc) * 1.2), 
                           yaxt = "n",       
                           yaxs = "i")       

# 3. CONSTRUIR UN EJE Y PERSONALIZADO (CORREGIDO CON SÍMBOLO %)
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 (TOP 5 y el resto)
Datos_Pie <- c(Top5_Coord, "Otras Fuentes" = Otras_Coord)

hi_pie_porc <- round(prop.table(Datos_Pie) * 100, 1) 
colores <- c("#66C2A5", "#FC8D62", "#8DA0CB", "#E78AC3", "#A6D854", "#D3D3D3")
etiquetas_leyenda <- paste0(names(Datos_Pie), " (", 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 Fuentes (Top 5 vs Otros)", 
    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 = "Fuentes de Datos", font = 2, cex = 0.9)

# 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.7,          
       bty = "n",                    
       xjust = 0.5,                  
       y.intersp = 1.4)

CONCLUSIÓN

CONCLUSIÓN DE LA VARIABLE COORDINATE SOURCE

Al examinar la variable univariada correspondiente a la fuente de coordenadas (COORDINATE_SOURCE), es posible evaluar la procedencia y confiabilidad de los metadatos geoespaciales de la base de datos. La distribución de frecuencias demuestra que los métodos de recopilación de coordenadas no son homogéneos. Una proporción mayoritaria de las ubicaciones registradas proviene de un número reducido de fuentes metodológicas (el Top 5). Identificar estas fuentes predominantes es crucial, ya que el margen de precisión espacial para futuros análisis geoquímicos o de mapeo dependerá directamente del rigor técnico con el que dichas fuentes principales registraron la información originalmente.