knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) library(peruflorads43) library(dplyr) library(tibble) library(ggplot2) library(scales) library(gt)
La base de datos threatenedperu incluida en el paquete peruflorads43 contiene la lista oficial de especies de plantas amenazadas del Perú según el Decreto Supremo N° 043-2006-AG y su actualización taxonómica utilizando la información de Plants of the World Online (POWO) del Royal Botanic Gardens, Kew.
threatenedperu <- get_threatened_database(type = "original")
El objeto threatenedperu es un tibble con 776 registros y 13 columnas, estructurado de la siguiente manera:
| Tipo de columna | Variables principales | Descripción |
| ------------------------------------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
| Datos originales (DS 043-2006-AG) | scientific_name, author, family, threat_category, genus, species, infraspecies, tag, infraspecies_2 | Información original del listado de especies amenazadas publicado en 2006. |
| Datos actualizados (POWO) | accepted_name, accepted_name_author, accepted_family, taxonomic_status | Información validada con taxonomía actualizada según POWO. |
Durante la depuración se realizaron las siguientes acciones:
Corrección de errores tipográficos en nombres científicos y autores.
Homogeneización de abreviaturas de autores.
Normalización de mayúsculas en géneros y epítetos.
Eliminación de espacios dobles y caracteres especiales.
Ejemplo comparativo de los de errores tipográficos en nombres científicos:
threatenedperu |> dplyr::mutate(compara = scientific_name != accepted_name) |> dplyr::mutate( # Calcula la distancia solo cuando los nombres difieren string_distance = ifelse( compara, stringdist::stringdist(scientific_name, accepted_name, method = "lv"), # 'lv' = Levenshtein 0 ) ) |> dplyr::filter(string_distance > 0 & string_distance < 3) |> dplyr::select(scientific_name, accepted_name, string_distance) |> gt::gt()
Esta variable describe la relación entre el nombre original y su estado taxonómico según POWO:
"Accepted" El nombre original se mantiene vigente.
"Synonym" El nombre original fue reemplazado por otro aceptado.
"No opinion" No se dispone de información actual o existe ambigüedad taxonómica.
Ejemplos de cada categoría:
# Nombres aceptados threatenedperu |> filter(taxonomic_status == "Accepted") |> select(scientific_name, accepted_name) |> slice_head(n = 5) #Nombres sinónimos threatenedperu |> filter(taxonomic_status == "Synonym") |> select(scientific_name, accepted_name) |> slice_head(n = 5) #Casos sin opinión threatenedperu |> filter(taxonomic_status == "No opinion") |> select(scientific_name, accepted_name) |> slice_head(n = 5)
status_summary <- threatenedperu |> count(taxonomic_status) |> mutate(pct = round(100 * n / sum(n), 1), label = paste0(pct, "% (", n, ")")) gt::gt(status_summary)
ggplot(status_summary, aes( x = reorder(taxonomic_status, -pct), y = pct, fill = taxonomic_status )) + geom_col(width = 0.7, show.legend = FALSE) + geom_text(aes(label = label), vjust = -0.4, size = 10, fontface = "bold") + scale_fill_manual( values = c( "Accepted" = "#4CAF50", # verde para nombres válidos "Synonym" = "#2196F3", # azul para sinónimos "No opinion" = "#FFC107" # amarillo para indeterminados ) ) + labs( title = "Proporción de nombres por estado taxonómico", x = "Estatus taxonómico", y = "Porcentaje (%)" ) + scale_y_continuous(expand = expansion(mult = c(0, 0.1))) + theme_bw() + theme( plot.title = element_text(size = 28, face = "bold", hjust = 0.5), axis.title.x = element_text(size = 22, margin = margin(t = 10)), axis.title.y = element_text(size = 22,margin = margin(r = 10)), axis.text = element_text(size = 22, color = "black"), panel.grid.minor = element_blank(), panel.grid.major.x = element_blank() )
category_summary <- threatenedperu |> count(threat_category, .drop = FALSE) |> mutate( threat_category = factor(threat_category, levels = c("CR","EN","VU","NT")), pct = round(100 * n / sum(n), 1), label = paste0(n, " (", pct, "%)") ) gt::gt(category_summary)
ggplot(category_summary, aes(x = forcats::fct_reorder(threat_category, n), y = n, fill = threat_category)) + geom_col(width = 0.7, show.legend = FALSE) + geom_text(aes(label = label), vjust = -0.35, size = 10, fontface = "bold") + scale_fill_manual(values = c( "CR" = "#D32F2F", "EN" = "#F57C00", "VU" = "#FBC02D", "NT" = "#388E3C" )) + labs( title = "Distribución de especies por categoría de amenaza (IUCN)", x = "Categoría IUCN", y = "Número de especies" ) + scale_y_continuous(expand = expansion(mult = c(0, 0.10))) + theme_bw() + theme( plot.title = element_text(size = 28, face = "bold", hjust = 0.5), axis.text = element_text(size = 22, color = "black"), axis.title = element_text(size = 22, color = "black"), panel.grid.major.x = element_blank() )
Algunos casos de sinónimos actualizados con sus equivalentes aceptados:
threatenedperu |> filter(taxonomic_status == "Synonym") |> select(scientific_name, accepted_name, accepted_family, threat_category) |> head(n=20) |> gt::gt()
Estos ejemplos muestran cómo especies registradas originalmente bajo un nombre hoy obsoleto fueron actualizadas conforme a la nomenclatura moderna (por ejemplo, Pucara leucantha ~ Stenomesson leucanthum).
El siguiente código calcula la proporción de coincidencia directa entre scientific_name y accepted_name:
threatenedperu |> summarise( total = n(), iguales = sum(scientific_name == accepted_name, na.rm = TRUE), porcentaje_iguales = round(100 * iguales / total, 1) )
Esto permite cuantificar el grado de estabilidad nomenclatural en el decreto original frente a la taxonomía actual.
La base de datos threatenedperu integra información oficial del DS 043-2006-AG con nomenclatura validada por POWO, permitiendo análisis actualizados sobre especies protegidas.
La variable taxonomic_status es clave para identificar cambios taxonómicos: alrededor de 23.1% de los nombres originales corresponden a sinónimos.
threatenedperu |> dplyr::count(taxonomic_status) |> dplyr::mutate(porcentaje = scales::percent(n / sum(n), accuracy = 0.1)) |> gt::gt()
La homogeneización de la escritura y la normalización de abreviaturas garantizan la interoperabilidad con otras bases de datos botánicas.
Este recurso constituye una herramienta util para la investigación, conservación y gestión de la flora amenazada del Perú.
Referencias Ministerio de Agricultura del Perú (2006). Decreto Supremo N° 043-2006-AG: Listado de especies de flora amenazada del Perú.
Plants of the World Online (POWO). Royal Botanic Gardens, Kew. https://powo.science.kew.org
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.