## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  warning = FALSE,
  message = FALSE,
  fig.width = 7.2,
  fig.height = 5.2,
  fig.align = "center"
)

## ----setup--------------------------------------------------------------------
library(perufaunads004)
library(dplyr)
library(ggplot2)
library(knitr)

## ----balance-multitaxa--------------------------------------------------------
# Conteo de especies por clase y categoría en el DS 004-2014
resumen_ds004 <- ds004_fauna |>
  count(clase, ds004_categoria_codigo) |>
  tidyr::pivot_wider(
    names_from = ds004_categoria_codigo,
    values_from = n,
    values_fill = 0
  ) |>
  mutate(
    Total_Amenazadas = CR + EN + VU,
    Total_Protegidas = CR + EN + VU + NT + DD
  ) |>
  relocate(clase, CR, EN, VU, Total_Amenazadas, NT, DD, Total_Protegidas)

kable(
  resumen_ds004,
  col.names = c("Grupo Taxonómico", "CR", "EN", "VU", "Amenazadas (CR+EN+VU)", "NT", "DD", "Total Legal (DS 004)"),
  caption = "Especies de fauna silvestre según categoría de conservación en el D.S. N° 004-2014-MINAGRI."
)

## ----plot-balance-clases, fig.cap = "Distribución de especies amenazadas (CR, EN, VU) y protegidas (NT, DD) por clase zoológica."----
df_plot <- ds004_fauna |>
  mutate(ds004_categoria_codigo = factor(ds004_categoria_codigo, levels = c("DD", "NT", "VU", "EN", "CR")))

ggplot(df_plot, aes(x = clase, fill = ds004_categoria_codigo)) +
  geom_bar(position = "stack", color = "white", linewidth = 0.3) +
  scale_fill_manual(
    name = "Categoría",
    values = c(
      "CR" = "#7f0000",
      "EN" = "#d7301f",
      "VU" = "#fc8d59",
      "NT" = "#fed976",
      "DD" = "#bdbdbd"
    )
  ) +
  labs(
    title = "Especies de Fauna Protegida en el Perú por Grupo Taxonómico",
    subtitle = "D.S. N° 004-2014-MINAGRI y Libro Rojo (SERFOR, 2018)",
    x = "Grupo Taxonómico",
    y = "Número de Especies"
  ) +
  theme_minimal(base_size = 11) +
  theme(
    legend.position = "right",
    plot.title = element_text(face = "bold")
  )

## ----anfibios-fichas----------------------------------------------------------
# Consultar anfibios en Peligro Crítico con ficha técnica
anfibios_cr <- libro_rojo_fichas |>
  filter(ficha_grupo == "Anfibios", grepl("^CR", ficha_categoria)) |>
  select(canonical_name, family_name, ficha_categoria, autores) |>
  head(6)

kable(anfibios_cr, col.names = c("Especie", "Familia", "Categoría / Criterios", "Autores de la Ficha"),
      caption = "Muestra de anfibios peruanos categorizados En Peligro Crítico (CR).")

## ----aves-endemicas-----------------------------------------------------------
# Identificar aves en Peligro Crítico presentes en el Libro Rojo
aves_cr <- libro_rojo_fichas |>
  filter(ficha_grupo == "Aves", grepl("^CR", ficha_categoria)) |>
  select(canonical_name, family_name, common_name, ficha_categoria)

kable(aves_cr, col.names = c("Especie", "Familia", "Nombre Común", "Categoría / Criterios"),
      caption = "Aves en Peligro Crítico (CR) evaluadas en el Libro Rojo de Fauna Silvestre.")

## ----mamiferos-ordenes--------------------------------------------------------
# Órdenes de mamíferos amenazados en el DS 004
mamiferos_ordenes <- ds004_fauna |>
  filter(clase == "Mamíferos") |>
  count(genus, ds004_categoria_codigo) |>
  head(10)

## ----invertebrados-detalle----------------------------------------------------
# Especies de invertebrados en el DS 004
invertebrados_ds004 <- ds004_fauna |>
  filter(clase == "Invertebrados") |>
  select(scientific_name, ds004_categoria_codigo, common_name)

kable(invertebrados_ds004, col.names = c("Nombre Científico", "Categoría", "Nombre Común"),
      caption = "Invertebrados terrestres legalmente protegidos en el Perú (D.S. N° 004-2014-MINAGRI).")

