CARGA DE DATOS
# Configuración general de los bloques de código
knitr::opts_chunk$set(
echo = TRUE,
message = FALSE,
warning = FALSE,
fig.align = "center"
)
# Carga del archivo de datos
datos <- read.csv(
"C:/Users/Martin/Desktop/Estadistica/CMDB_Data.csv",
header = TRUE,
sep = ";",
dec = ".",
fileEncoding = "latin1"
)
# Convertir la variable CONTINENT a texto para facilitar su limpieza
datos$CONTINENT <- as.character(datos$CONTINENT)
# Reemplazar valores vacíos o nulos por "Desconocido"
datos$CONTINENT[datos$CONTINENT == ""] <- "Desconocido"
datos$CONTINENT[is.na(datos$CONTINENT)] <- "Desconocido"
# Reemplazar diferentes formas de escribir "unknown"
datos$CONTINENT[
tolower(trimws(datos$CONTINENT)) %in% c("unknown", "desconocido")
] <- "Desconocido"
# Unificar América del Norte y América del Sur en una sola categoría
datos$CONTINENT[
datos$CONTINENT %in% c("North America", "South America")
] <- "America"
# Convertir nuevamente la variable en factor
datos$CONTINENT <- as.factor(datos$CONTINENT)
# Verificación inicial del conjunto 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 : Factor w/ 6 levels "Africa","America",..: 2 2 2 1 5 2 2 2 2 2 ...
## $ 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 distribución geográfica de las muestras de elementos críticos por continente.
DISTRIBUCIÓN GENERAL DE FRECUENCIAS POR CONTINENTE
# Cargar las librerías necesarias
library(dplyr)
library(gt)
# 1. CREAR LA TABLA DE FRECUENCIAS DE LA VARIABLE CONTINENT
TDFCONTINENT <- table(datos$CONTINENT)
# 2. ELIMINAR LA CATEGORÍA "DESCONOCIDO" DEL ANÁLISIS
TDFCONTINENT <- TDFCONTINENT[
names(TDFCONTINENT) != "Desconocido"
]
# 3. ORDENAR LOS CONTINENTES DE MAYOR A MENOR FRECUENCIA
TDFCONTINENT_ORD <- sort(
TDFCONTINENT,
decreasing = TRUE
)
# 4. CONVERTIR LA TABLA DE FRECUENCIAS EN DATA FRAME
tabla_agrupada <- as.data.frame(TDFCONTINENT_ORD)
# Cambiar los nombres de las columnas
colnames(tabla_agrupada) <- c("Continente", "ni")
# 5. CALCULAR EL TOTAL DE MUESTRAS VÁLIDAS
total_muestras <- sum(tabla_agrupada$ni)
# 6. CALCULAR FRECUENCIA RELATIVA Y PORCENTUAL
tabla_agrupada$hi <- tabla_agrupada$ni / total_muestras
tabla_agrupada$hi_porc <- round(
tabla_agrupada$hi * 100,
2
)
# 7. CREAR LA FILA DE TOTALES
Total <- data.frame(
Continente = "TOTAL",
ni = sum(tabla_agrupada$ni),
hi = sum(tabla_agrupada$hi),
hi_porc = round(sum(tabla_agrupada$hi_porc), 2)
)
# 8. UNIR LA TABLA DE FRECUENCIAS CON LA FILA DE TOTALES
tabla_final <- rbind(
tabla_agrupada,
Total
)
# 9. MOSTRAR LA TABLA CON LA LIBRERÍA gt
tabla_continent_gt <- tabla_final %>%
gt() %>%
fmt_number(
columns = hi,
decimals = 4
) %>%
fmt_number(
columns = hi_porc,
decimals = 2
) %>%
cols_label(
Continente = "Continente",
ni = "Frecuencia absoluta (ni)",
hi = "Frecuencia relativa (hi)",
hi_porc = "Porcentaje (%)"
) %>%
tab_header(
title = md("**Tabla N.° 1**"),
subtitle = md(
"Distribución de muestras de elementos críticos por continente"
)
) %>%
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
tabla_continent_gt
| Tabla N.° 1 | |||
| Distribución de muestras de elementos críticos por continente | |||
| Continente | Frecuencia absoluta (ni) | Frecuencia relativa (hi) | Porcentaje (%) |
|---|---|---|---|
| America | 1206 | 0.8835 | 88.35 |
| Europe | 54 | 0.0396 | 3.96 |
| Oceania | 40 | 0.0293 | 2.93 |
| Asia | 37 | 0.0271 | 2.71 |
| Africa | 28 | 0.0205 | 2.05 |
| TOTAL | 1365 | 1.0000 | 100.00 |
| Autores: Grupo 1 Semestre 2026 - 2026 |
|||
FRECUENCIAS ABSOLUTAS, RELATIVAS Y ACUMULADAS
# 1. CREAR UNA COPIA DE LA TABLA DE FRECUENCIAS VÁLIDAS
TDF_limpia <- TDFCONTINENT_ORD
# 2. CONVERTIR LA TABLA EN DATA FRAME
tabla_frecuencias <- as.data.frame(TDF_limpia)
# Cambiar los nombres de las columnas
colnames(tabla_frecuencias) <- c("Continente", "ni")
# 3. CALCULAR LA FRECUENCIA RELATIVA
tabla_frecuencias$hi <- round(
tabla_frecuencias$ni / sum(tabla_frecuencias$ni),
4
)
# 4. CALCULAR EL PORCENTAJE
tabla_frecuencias$hi_porc <- round(
tabla_frecuencias$hi * 100,
2
)
# 5. CALCULAR LAS FRECUENCIAS ACUMULADAS ASCENDENTES
tabla_frecuencias$Niasc <- cumsum(
tabla_frecuencias$ni
)
tabla_frecuencias$Hiasc <- round(
cumsum(tabla_frecuencias$hi_porc),
2
)
# 6. CALCULAR LAS FRECUENCIAS ACUMULADAS DESCENDENTES
tabla_frecuencias$Nidsc <- rev(
cumsum(rev(tabla_frecuencias$ni))
)
tabla_frecuencias$Hidsc <- round(
rev(cumsum(rev(tabla_frecuencias$hi_porc))),
2
)
# 7. CREAR LA FILA DE TOTALES
Total_Frecuencias <- data.frame(
Continente = "TOTAL",
ni = sum(tabla_frecuencias$ni),
hi = round(sum(tabla_frecuencias$hi), 4),
hi_porc = round(sum(tabla_frecuencias$hi_porc), 2),
Niasc = NA,
Hiasc = NA,
Nidsc = NA,
Hidsc = NA
)
# 8. UNIR LA TABLA CON LA FILA DE TOTALES
tabla_con_total <- rbind(
tabla_frecuencias,
Total_Frecuencias
)
# 9. CREAR LA TABLA VISUAL
tabla_frecuencias_gt <- tabla_con_total %>%
gt() %>%
fmt_number(
columns = hi,
decimals = 4
) %>%
fmt_number(
columns = c(hi_porc, Hiasc, Hidsc),
decimals = 2
) %>%
cols_label(
Continente = "Continente",
ni = "ni",
hi = "hi",
hi_porc = "hi (%)",
Niasc = "Ni ascendente",
Hiasc = "Hi ascendente (%)",
Nidsc = "Ni descendente",
Hidsc = "Hi descendente (%)"
) %>%
tab_header(
title = md("**Tabla N.° 2**"),
subtitle = md(
"Tabla de distribución de frecuencias por continente"
)
) %>%
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
tabla_frecuencias_gt
| Tabla N.° 2 | |||||||
| Tabla de distribución de frecuencias por continente | |||||||
| Continente | ni | hi | hi (%) | Ni ascendente | Hi ascendente (%) | Ni descendente | Hi descendente (%) |
|---|---|---|---|---|---|---|---|
| America | 1206 | 0.8835 | 88.35 | 1206 | 88.35 | 1365 | 100.00 |
| Europe | 54 | 0.0396 | 3.96 | 1260 | 92.31 | 159 | 11.65 |
| Oceania | 40 | 0.0293 | 2.93 | 1300 | 95.24 | 105 | 7.69 |
| Asia | 37 | 0.0271 | 2.71 | 1337 | 97.95 | 65 | 4.76 |
| Africa | 28 | 0.0205 | 2.05 | 1365 | 100.00 | 28 | 2.05 |
| TOTAL | 1365 | 1.0000 | 100.00 | NA | NA | NA | NA |
| Autores: Grupo 1 Semestre 2026 - 2026 |
|||||||
GRÁFICA DE BARRAS LOCAL Y GLOBAL
# Guardar las frecuencias absolutas de todos los continentes
freq_abs <- TDFCONTINENT_ORD
# Ajustar los márgenes del área gráfica
par(mar = c(7, 5, 4, 2) + 0.1)
# Calcular el límite superior para la gráfica local
limite_y_local <- max(freq_abs) * 1.20
# 1. GRÁFICA LOCAL
# El eje vertical se ajusta al continente con mayor frecuencia
bar_centers_local <- barplot(
freq_abs,
main = "Gráfica 1: Distribución de muestras por continente (LOCAL)",
xlab = "Continente",
ylab = "Cantidad de muestras",
col = "pink",
las = 2,
cex.names = 0.8,
ylim = c(0, limite_y_local)
)
# Agregar los valores encima de cada barra
text(
x = bar_centers_local,
y = freq_abs,
labels = freq_abs,
pos = 3,
cex = 0.8,
col = "black"
)
# 2. GRÁFICA GLOBAL
# El eje vertical representa el total de muestras válidas
bar_centers_global <- barplot(
freq_abs,
main = "Gráfica 2: Distribución de muestras por continente (GLOBAL)",
xlab = "Continente",
ylab = "Cantidad de muestras",
col = "skyblue",
las = 2,
cex.names = 0.8,
ylim = c(0, total_muestras),
yaxt = "n"
)
# Construir un eje vertical personalizado
puntos_eje <- unique(
round(
c(
seq(0, total_muestras, length.out = 5),
total_muestras
)
)
)
axis(
side = 2,
at = puntos_eje,
las = 1
)
# Agregar los valores encima de las barras
text(
x = bar_centers_global,
y = freq_abs,
labels = freq_abs,
pos = 3,
cex = 0.8,
col = "black"
)
ANÁLISIS DE FRECUENCIA ABSOLUTA POR CONTINENTE
# Ajustar los márgenes de la gráfica
par(mar = c(7, 5, 4, 2) + 0.1)
# Dibujar la gráfica y guardar las coordenadas de las barras
bar_centers <- barplot(
freq_abs,
main = "Gráfica 3: Frecuencia absoluta por continente",
xlab = "Continente",
ylab = "Cantidad de muestras",
col = "orange",
las = 2,
cex.names = 0.8,
ylim = c(0, max(freq_abs) * 1.20)
)
# Colocar las frecuencias absolutas 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 EN PORCENTAJES
# Ajustar los márgenes de la gráfica
par(mar = c(7, 5, 4, 2) + 0.1)
# Calcular los porcentajes de cada continente
freq_rel_porc <- round(
(freq_abs / total_muestras) * 100,
2
)
# Establecer un límite superior adecuado
limite_porcentual <- max(freq_rel_porc) * 1.20
# Dibujar la gráfica de porcentajes
bar_centers_rel <- barplot(
freq_rel_porc,
main = "Gráfica 4: Distribución porcentual por continente",
xlab = "Continente",
ylab = "Porcentaje (%)",
col = "orchid",
las = 2,
cex.names = 0.8,
ylim = c(0, limite_porcentual),
yaxt = "n",
yaxs = "i"
)
# Crear los puntos del eje vertical
puntos_porcentaje <- pretty(
c(0, limite_porcentual),
n = 5
)
# Dibujar el eje con el símbolo de porcentaje
axis(
side = 2,
at = puntos_porcentaje,
labels = paste0(puntos_porcentaje, "%"),
las = 1,
cex.axis = 0.8
)
# Colocar los porcentajes encima de las barras
text(
x = bar_centers_rel,
y = freq_rel_porc,
labels = paste0(freq_rel_porc, "%"),
pos = 3,
cex = 0.8,
col = "black"
)
GRÁFICA CIRCULAR DE LA DISTRIBUCIÓN POR CONTINENTE
# Calcular el porcentaje correspondiente a cada continente
hi_cont_porc <- round(
prop.table(freq_abs) * 100,
1
)
# Crear una paleta de colores automática
colores <- rainbow(
length(freq_abs),
s = 0.55,
v = 0.90
)
# Crear las etiquetas para la leyenda
etiquetas_leyenda <- paste0(
names(freq_abs),
" (",
hi_cont_porc,
"%)"
)
# Ajustar el lienzo para dejar espacio a la leyenda
par(
mar = c(2, 2, 4, 13),
xpd = TRUE
)
# Dibujar la gráfica circular
pie(
freq_abs,
labels = paste0(hi_cont_porc, "%"),
col = colores,
main = "Gráfica 5: Distribución de muestras por continente",
radius = 0.90,
cex = 0.9
)
# Agregar la leyenda a la derecha
legend(
x = 1.15,
y = 1,
legend = etiquetas_leyenda,
fill = colores,
title = "Continentes",
cex = 0.8,
bty = "o",
y.intersp = 1.3
)
CONCLUSIÓN DE LA VARIABLE CONTINENT
Dominio de América: La inmensa mayoría de las muestras provienen de América, concentrando el 88.4% del total. En resumen, la distribución de la variable continente está fuertemente sesgada hacia América.