6  ¿Dónde se producen más conflictos internacionales?

6.1 Introducción

¿Dónde se producen más conflictos internacionales? Para responder a esta pregunta, necesitamos mapear los conflictos que se están produciendo en el mundo. Y esto nos lo permitirá hacer una base de datos que ofrezca datos sobre violencia organizada. Probablemente, la más reconocida en Europa es la que aloja la ** Uppsala Conflict Data Program **, un programa de investigación orientado a la recolección de datos y a la investigación cuantitativa de conflictos armados.

Las bases de datos que publica la UCDP se pueden dividir en dos tipos. En primer lugar, hay un grupo de datos que se publican con relativa frecuencia desagregados por acontecimiento: son la Candidate Events Dataset (CED) y la Georeferenced Event Dataset (GED). En segundo lugar, hay un grupo de datos que se publican anualmente, agregados por conflicto y proporcionan información de los conflictos por estado y año. La más conocida es la UCDP-PRIO, que seguramente habréis visto en muchas estadísticas sobre conflictos que aparecen a los medios de comunicación e informes como los PRIO Annual Reports.

En este apartado utilizaremos datos del primer grupo, puesto que nos permitirá visualizar los acontecimientos de conflicto que se han producido en el último mes de datos. Para hacer la actividad:

  1. Necesitaremos herramientas cartográficas digitales. En coherencia con otras asignaturas del grado, utilizaremos el programa R. Esto nos permitirá escoger un tipo de mapa y la escala con el que lo queremos representar.

  2. Necesitaremos la información de conflictos armados sistematizada en una base de datos. Esta base de datos es la CED (Hegre et al. 2020) de UCDP, que proporciona información sobre los acontecimientos de conflictos brutos que se han producido en un mes determinado. La misma base de datos tiene información geográfica sobre las coordenadas en donde se han producido los acontecimientos de un determinado conflicto.

  3. También necesitaremos saber cómo interpretar la base de datos. Por eso haremos uso del libro de códigos y de información general sobre los conflictos, más cualitativa, que podremos obtener de la misma web de UCDP y de otras páginas web.

Exr. 6.1 (Uppsala Conflict Data Program) Da un primer vistazo en la página web Uppsala Conflict Data Program. Pon especial atención a:

  • El apartado de descargas (Downloads).
  • La información general sobre el programa de investigación (About). Busca un conflicto en el mapa de la página principal y selecciónalo para consultar más información. Entrarás a una nueva página donde verás la narrativa del conflicto, entre otros datos (por ejemplo, el conflicto Lashkar-e-Taiba vs. Civilians.

6.2 El mapa

Las herramientas cartográficas digitales nos las proporciona el programa R. Antes de continuar en este apartado, es necesario haberse familiarizado con el programa RStudio. Por eso es necesario consultar la Guía de RStudio previamente.

Exr. 6.2 (Guía RStudio) Sigue la Guía de RStudio. Una vez hayas leído la guía y hecho todos los ejercicios, haz lo siguiente:

  • Entra en RStudio.
  • En la carpeta de la asignatura, crea un proyecto de nombre UCDP.
  • Una vez creado el proyecto, abre un R Script y carga los paquetes que necesitarás para hacer la actividad:
¿Has instalado los paquetes?

Recuerda que, para utilizar un paquete, este tiene que estar instalado previamente en RStudio. Si no has instalado alguno de estos paquetes, ahora es el momento de hacerlo:

install.packages(c("dplyr", "readr", 
                   "ggplot2", "leaflet"))

Uno de los paquetes que hemos de tener cargados para esta actividad es leaflet1, un paquete que nos permite crear mapas. El paquete contiene la función leaflet(), que es la base para construir mapas. Utilizaremos el código que vemos a continuación para crear un mapa, que visualizaremos en el Viewer de RStudio. Dentro de la función indicaremos:

  • 1 Para mayor información de cómo utilizar leaflet, podéis consultar Leaflet: Create Interactive Web Maps with the Javascript Leaflet Library (Cheng, Karambelkar, and Xie 2022)

    • Las coordenadas del mapa con los argumentos lng (longitud) y lat (latitud).
    • La escala del mapa con el argumento zoom.
    leaflet() |> 
      addTiles() |> 
      setView(lng = 138.727424, 
              lat = 35.362465, 
              zoom = 11)

    También se puede cambiar el mapa base sobre el que se está operando. Con leaflet podemos conformarnos con el mapa que tenemos por defecto o bien seleccionar otro mediante la función addProviderTiles(), que pondremos en el código en sustitución de addTiles(). Hay varios proveedores que pueden proporcionar este mapa base. En este enlace tenéis decenas de mapas para escoger. Los tipos de mapas que se pueden escoger están almacenados en el objeto providers, que podemos consultar si tecleamos names(providers).

    leaflet() |> 
      addProviderTiles(providers$Esri.NatGeoWorldMap) |> 
      setView(lng = 138.727424, 
              lat = 35.362465, 
              zoom = 11)

    Exr. 6.3 (Visualiza una zona) Crea tu propio mapa con los tres elementos siguientes:

    • Ubica la longitud y la latitud en alguna zona del Sahel.
    • De acuerdo con la clasificación de Flint (2022), utiliza una escala subestatal.
    • Selecciona uno de los tipos de mapa que tienes disponible en names(providers).

    6.3 Los datos

    La base de datos CED contiene información de todos los acontecimientos relacionados con violencia armada que se han producido en el mundo en el último mes. El UCDP actualiza los datos aproximadamente a mediados de mes y, por lo tanto, por ejemplo, hacia el 15 de octubre de 2023 aparecerán los datos CED del mes de septiembre de 2023. Para descargar los datos del último mes, iremos al apartado de descargas de la web de UCDP y bajaremos el archivo CSV (marcado en la imagen siguiente en rojo) de la CED.

    Si pulsamos el icono CSV, descargaremos un archivo que se llamará GEDEvent_vXX_X_X.csv; por ejemplo:

    • GEDEvent_v23_0_4.csv

    Nos aseguraremos que el archivo que descargamos lo ponemos en la carpeta del proyecto, de forma que lo podremos visualizar desde la ventana ‘Files’ de RStudio. A continuación, crearemos un objeto de R llamado ged que contenga los datos del archivo.

    Exr. 6.4 (Carga el archivo GED) Modifica el código siguiente e introduce la información correcta del archivo. Asegúrate de que el objeto ged se ha creado correctamente al Global Environment.

    ged <- read_csv("GEDEvent_v23_0_4.csv")

    A continuación, daremos un vistazo al objeto ged. El marco de datos que vemos en este documento corresponde a los acontecimientos de conflicto que se produjeron durante abril de 2023. Por lo tanto, se tiene que tener en cuenta que estos datos no coincidirán con los que aparezcan en RStudio cuando se intente replicar el ejemplo. El código de R, no obstante, servirá igual.

    Primero introduciremos ged, donde tendremos una vista general de los datos. Fijémonos, por ejemplo, que en abril de 2023 se registraron 1.706 conflictos. El marco de datos tiene 49 variables. Detectamos una variable year donde, efectivamente, vemos que todas las observaciones se han registrado en 2023. Y detectamos que al primer conflicto observado le han asignado el código 360.

    ged
    # A tibble: 1,706 × 49
           id relid   year active_year code_status type_of_violence conflict_dset_id
        <dbl> <chr>  <dbl> <lgl>       <chr>                  <dbl> <chr>           
     1 469588 BFO-2…  2023 TRUE        Clear                      1 360             
     2 469603 BFO-2…  2023 TRUE        Check dyad                 1 360             
     3 469604 BFO-2…  2023 TRUE        Clear                      1 360             
     4 469622 RUS-2…  2023 TRUE        Clear                      1 13243           
     5 469677 PHI-2…  2023 FALSE       Clear                      1 14275           
     6 469742 BRA-2…  2023 TRUE        Clear                      2 15142           
     7 469845 BRA-2…  2023 TRUE        Clear                      2 15142           
     8 469846 BRA-2…  2023 TRUE        Clear                      2 15142           
     9 469849 BRA-2…  2023 TRUE        Clear                      2 15142           
    10 469859 AFG-2…  2023 TRUE        Clear                      1 13637           
    # ℹ 1,696 more rows
    # ℹ 42 more variables: conflict_new_id <dbl>, conflict_name <chr>,
    #   dyad_dset_id <chr>, dyad_new_id <dbl>, dyad_name <chr>,
    #   side_a_dset_id <chr>, side_a_new_id <dbl>, side_a <chr>,
    #   side_b_dset_id <chr>, side_b_new_id <dbl>, side_b <chr>,
    #   number_of_sources <dbl>, source_article <chr>, source_office <chr>,
    #   source_date <chr>, source_headline <chr>, source_original <chr>, …

    Exr. 6.5 (Examina tu marco de datos) Repite la operación con tu marco de datos y responde las preguntas siguientes:

    • ¿Cuántas filas y cuántas columnas tiene tu marco de datos?
    • ¿En qué año (year) se han registrado las observaciones?
    • ¿Cuál es el código (id) del primer conflicto observado?

    Veamos el mismo marco de datos más a fondo con glimpse(). Esta función permite dar un vistazo rápido a todas las variables e identifica cuáles son las primeras observaciones de cada variable2.

  • 2 Alternativamente, también podemos usar View().

  • glimpse(ged)
    Rows: 1,706
    Columns: 49
    $ id                <dbl> 469588, 469603, 469604, 469622, 469677, 469742, 4698…
    $ relid             <chr> "BFO-2023-1-15175-54", "BFO-2023-1-15175-57.1", "BFO…
    $ year              <dbl> 2023, 2023, 2023, 2023, 2023, 2023, 2023, 2023, 2023…
    $ active_year       <lgl> TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, TRU…
    $ code_status       <chr> "Clear", "Check dyad", "Clear", "Clear", "Clear", "C…
    $ type_of_violence  <dbl> 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1…
    $ conflict_dset_id  <chr> "360", "360", "360", "13243", "14275", "15142", "151…
    $ conflict_new_id   <dbl> 360, 360, 360, 13243, 14275, 13972, 13972, 13972, 13…
    $ conflict_name     <chr> "Burkina Faso: Government", "Burkina Faso: Governmen…
    $ dyad_dset_id      <chr> "15175", "15175", "15175", "14117", "15473", "15142"…
    $ dyad_new_id       <dbl> 15175, 15175, 15175, 14117, 15473, 15142, 15142, 151…
    $ dyad_name         <chr> "Government of Burkina Faso - JNIM", "Government of …
    $ side_a_dset_id    <chr> "78", "78", "78", "57", "154", "772", "772", "772", …
    $ side_a_new_id     <dbl> 78, 78, 78, 57, 154, 772, 772, 772, 772, 130, 130, 1…
    $ side_a            <chr> "Government of Burkina Faso", "Government of Burkina…
    $ side_b_dset_id    <chr> "6716", "6716", "6716", "61", "234", "3176", "3176",…
    $ side_b_new_id     <dbl> 6716, 6716, 6716, 61, 234, 3176, 3176, 3176, 3176, 2…
    $ side_b            <chr> "JNIM", "JNIM", "JNIM", "Government of Ukraine", "IS…
    $ number_of_sources <dbl> 1, 2, 2, 2, 2, 1, 1, 1, 1, 8, 6, 7, 10, 9, 4, 1, 2, …
    $ source_article    <chr> "\"@AlerteTemoin,2023-04-03,Zondoma \"", "\"@Danoumi…
    $ source_office     <chr> "@AlerteTemoin", "@Danoumis_Traore;Sahel Intelligenc…
    $ source_date       <chr> "2023-04-03", "2023-04-03;2023-04-04", "2023-04-04;2…
    $ source_headline   <chr> "Zondoma", "#Burkina;Burkina Faso: several terrorist…
    $ source_original   <chr> NA, "Army", NA, "Daily Kos, Reporting from Ukraine",…
    $ where_prec        <dbl> 1, 2, 1, 1, 4, 2, 1, 1, 2, 1, 1, 1, 3, 2, 5, 5, 1, 1…
    $ where_coordinates <chr> "Bougounam village", "Soum-Bellah village", "Tawori …
    $ where_description <chr> "Bougounam, Zondoma", "Soum Bella (Sahel), area of",…
    $ adm_1             <chr> "Nord region", "Sahel region", "Est region", "Donets…
    $ adm_2             <chr> "Zondoma province", "Soum province", "Tapoa province…
    $ latitude          <dbl> 13.36259, 14.76129, 12.04667, 48.59244, 7.90000, -10…
    $ longitude         <dbl> -2.39254, -1.11884, 1.40688, 37.99993, 124.35000, -3…
    $ geom_wkt          <chr> "POINT (-2.39254 13.36259)", "POINT (-1.11884 14.761…
    $ priogrid_gid      <dbl> 148676, 150838, 147243, 199876, 141009, 114766, 1161…
    $ country           <chr> "Burkina Faso", "Burkina Faso", "Burkina Faso", "Ukr…
    $ country_id        <dbl> 439, 439, 439, 369, 840, 140, 140, 140, 140, 700, 70…
    $ region            <chr> "Africa", "Africa", "Africa", "Europe", "Asia", "Ame…
    $ event_clarity     <dbl> 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
    $ date_prec         <dbl> 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
    $ date_start        <dttm> 2023-04-02, 2023-04-03, 2023-04-03, 2023-04-04, 202…
    $ date_end          <dttm> 2023-04-02, 2023-04-03, 2023-04-03, 2023-04-04, 202…
    $ deaths_a          <dbl> 0, 0, 0, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 4, 0, 0, 0…
    $ deaths_b          <dbl> 7, 10, 0, 0, 3, 0, 0, 0, 0, 6, 2, 1, 6, 2, 0, 24, 2,…
    $ deaths_civilians  <dbl> 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0…
    $ deaths_unknown    <dbl> 0, 0, 0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1…
    $ best              <dbl> 8, 10, 0, 8, 3, 2, 1, 1, 1, 7, 2, 1, 6, 6, 4, 24, 2,…
    $ high              <dbl> 8, 10, 1, 10, 3, 2, 1, 1, 1, 14, 2, 1, 6, 16, 4, 24,…
    $ low               <dbl> 8, 10, 0, 2, 3, 2, 1, 1, 1, 3, 0, 1, 6, 2, 4, 24, 2,…
    $ gwnoa             <dbl> 439, 439, 439, 365, 840, NA, NA, NA, NA, 700, 700, 7…
    $ gwnob             <dbl> NA, NA, NA, 369, NA, NA, NA, NA, NA, NA, NA, NA, NA,…

    De nuevo, recuerda que la información de este ejemplo no coincidirá con el marco de datos que estáis reproduciendo en vuestro ordenador, porque este ejemplo es de abril de 2023 y vosotros estaréis trabajando con unos datos más nuevos. Siguiendo con el ejemplo que se detalla con el resultado del código anterior, fijémonos en algunos detalles3:

  • 3 La variable priogrid_gid contiene los datos en formato raster.

    • La variable conflict_name parece que contiene el nombre del conflicto. La primera observación se ha codificado como “Burkina Faso: Government”.
    • Si nos vamos moviendo hacia abajo, encontraremos que este primer conflicto del marco de datos registra un acontecimiento con violencia que involucraba al Gobierno de Burkina Faso (side_a) y al Grupo de Apoyo al Islam y los Musulmanes (JNIM) (side_b), que deducimos que debe de ser un grupo armado.
    • El conflicto se produjo en el pueblo de Bougounam (where_coordinates y where_description), en la provincia de Zondoma (adm_2).
    • Las coordenadas son latitud 13.362590 (latitude) y longitud -2.39254 (longitud). Entraremos en Google Maps y escribiremos en el buscador “13.362590 -2.39254” (orden inverso) para ver el lugar exacto.
    • Hacia el final del marco de datos, vemos que este acontecimiento de violencia armada no causó ninguna muerte al Gobierno de Burkina Faso (deaths_a), causó 7 muertos al JNIM (deaths_b) y causó la muerte de un civil (deaths_civilians). Las codificaciones de UCDP generan tres estimaciones de muertes: low, que es una estimación a la baja; high, que es una estimación al alza, y best, que es la estimación más fiable. En este caso, la estimación de muertes es exacta, puesto que las codificaciones de UCDP saben con certeza que se produjeron 8 muertos —las estimaciones mejor, alta y baja no coinciden en todos los acontecimientos.

    Exr. 6.6 (Examina tu marco de datos) Repite la operación con tu marco de datos y responde las preguntas siguientes:

    • ¿Cuál es el nombre del primer conflicto que aparece en los datos?
    • ¿Quiénes eran las dos partes involucradas en el conflicto?
    • ¿Dónde se produjo el acontecimiento?
    • ¿Cuántas bajas causó el acontecimiento?

    6.4 El libro de códigos

    Una explicación mucho más precisa de los datos que tenemos nos la dará el libro de códigos. El libro de códigos es un documento anexo a una base de datos con la información esencial para interpretar los datos que contiene. Normalmente, dentro del libro de códigos encontramos una introducción con una explicación general de lo que miden los datos y una descripción de las variables.

    En la web de UCDP, iremos al apartado de descargas y bajaremos el libro de códigos de la CED.

    Si abrimos el PDF del libro de códigos y vamos a la segunda práctica, veremos un índice de su contenido:

    • Las definiciones (página 3-4 y apéndice I) son un elemento importantísimo en cualquier base de datos de calidad. En el apartado Definitions se explica, por ejemplo, que el acontecimiento es la unidad de observación del conjunto de datos, definido como “an individual incident (phenomenon) of lethal violence occurring at a given time and place”. Por lo tanto, podemos esperar que cada una de las 1.704 filas contenga un episodio de violencia letal ocurrida en un lugar y un momento concreto del tiempo 4.

    • A partir de la página 5 empieza el apartado Variables in the UCDP Candidate dataset, donde se describen todas las variables de la base de datos. Si el libro de códigos está bien hecho, la lista de variables que observamos en el PDF tendría que coincidir con la lista de variables que hemos visto anteriormente mediante la función glimpse().

    • Todos los apartados del libro de códigos son interesantes. En ** Data Collection Methods** se explica qué fuentes de información utilizan los codificadores del UCDP a la hora de recoger datos de los acontecimientos.

  • 4 Concretamente, un acontecimiento es definido como “an incident where armed force was used by an organised actor against another organized actor, or against civilians, resulting in at least 1 direct death at a specific location and a specific date”.

  • Exr. 6.7 (Libro de códigos) Dentro del libro de códigos, mira el apartado Variables in the UCDP Candidate dataset:

    • ¿Qué categorías puede adoptar la variable region?
    • ¿Cómo está definida exactamente la variable adm1?
    • ¿Qué tendríamos que esperar encontrar en los valores de la variable source_original?

    6.5 Exploración de los datos

    Ahora que ya tenemos a mano los datos y el libro de códigos, explorémoslo más a fondo. Por eso, en este apartado conoceremos algo más a fondo las funciones unique(), sort() y count(). La función unique() nos permite saber qué categorías únicas contiene una variable. Combinada con sort(), vemos el listado ordenado alfabéticamente. La función count(), por su parte, nos cuenta las veces que está repetida una categoría en una variable determinada. Veamos algunos ejemplos de cómo aplicar estas funciones en el marco de datos ged:

    • ¿Qué conflictos diferentes tenemos en la base de datos?
    sort(unique(ged$conflict_name))
    • ¿Qué divisiones administrativas diferentes tenemos en la base de datos?
    sort(unique(ged$adm_1))
    • ¿En qué países han sucedido más acontecimientos?
    count(ged, country, sort = TRUE)

    Exr. 6.8 (Exploración de los datos) Utiliza los códigos anteriores para responder preguntas sobre los datos que te has descargado. Adicionalmente, intenta modificar los códigos para responder las preguntas siguientes:

    • ¿Qué localizaciones diferentes tenemos en la base de datos? (variable where_coordinates)
    • ¿En qué continentes han sucedido más acontecimientos? (variable continent)

    6.6 Mapear un conflicto internacional

    Ahora agruparemos toda la información que hemos ido acumulando a lo largo de los últimos apartados para mapear un conflicto internacional. En primer lugar, miraremos de mapear todos los acontecimientos que se produjeron en el mundo en el mes que hemos tomado datos. En el caso de este ejemplo, veremos los conflictos de abril de 2023.

    • Antes de la función leaflet() introducimos el nombre de la base de datos ged.
    • Especificamos una nueva función, addCircleMarkers(), e indicamos los argumentos lng y lat, nombre de los vectores donde se encuentran las coordenadas.
    ged |> 
      leaflet() |> 
      addTiles() |> 
      addCircleMarkers(lng = ~longitude, 
                       lat = ~latitude)

    Ahora concretaremos algo más el mapa. Con las funciones que hemos visto anteriormente, hemos obtenido una lista de los conflictos que tenemos en la base de datos. Por ejemplo, si en la variable conflict_name tenemos un conflicto que se denomina "Turkey: Kurdistan", podemos reproducirlo en el mapa.

    ged |> 
      filter(conflict_name == "Turkey: Kurdistan") |> 
      leaflet() |> 
      addTiles() |> 
      addCircleMarkers(lng = ~longitude, 
                       lat = ~latitude)

    A continuación, veremos algunas de las opciones que se pueden introducir en el mapa:

    • Con setView(), se pueden modificar las coordenadas y la escala del mapa.
    • Con addProviderTiles(), se puede modificar el tipo de mapa.
    • Dentro de addCircleMarkers(), se puede especificar la medida de los puntos, el color y si queremos borde.
    ged |> 
      filter(conflict_name == "Turkey: Kurdistan") |> 
      leaflet() |> 
      setView(lng = 38.727424, 
              lat = 35.362465, 
              zoom = 6) |> 
      addProviderTiles(providers$Esri.NatGeoWorldMap) |> 
      addCircleMarkers(lng = ~longitude, 
                       lat = ~latitude,
                       radius = 5,
                       stroke = T,
                       color = "black")

    Exr. 6.9 (Escoge un conflicto) Busca un conflicto que aparezca en tu base de datos y reprodúcelo en el mapa. Puedes hacerlo de dos maneras:

    1. Replicando el código anterior, cambiando el nombre del conflicto conflict_name y ajustando la escala del mapa para que se pueda visualizar correctamente.

    2. También puedes optar por utilizar otros parámetros para buscar un conflicto. Por ejemplo, podríamos mirar qué conflictos se han producido en un país determinado.

    • En el código sustituiremos conflict_name por country.
    • Sustituiremos Turkey: Kurdistan por el nombre del país en cuestión.
    • Repetiremos todo el procedimiento.

    A continuación, se muestra alguna de las variaciones más avanzadas que se puede hacer con el paquete leaflet.

    En el primer ejemplo, se quiere saber las bajas estimadas (best) existentes en un conflicto determinado (conflict_name):

    1. Se ha creado un nuevo objeto ged_confl en el cual solo hay los datos del conflicto que se quiere observar.
    2. En el objeto pal_num se ha guardado la paleta de colores de la variable que se quiere observar (best)5.
    3. Se ha definido el tipo de mapa Esri.NatGeoWorldMap.
  • 5 En lugar de “viridis”, se puede cambiar el color de la paleta por “magma”, “inferno” o “plasma”.

  • ged_confl <- ged |> 
      filter(conflict_name == "Turkey: Kurdistan")
    pal_num <- colorNumeric(palette = "viridis", 
                            domain = ged_confl$best, 
                            reverse = TRUE)
    ged_confl |> 
      leaflet() |> 
      addProviderTiles(providers$Esri.NatGeoWorldMap) |> 
      addCircleMarkers(lng = ~longitude, 
                       lat = ~latitude,
                       popup = ~best,                   
                       color = ~pal_num(best),
                       label = ~best) |> 
      addLegend(pal = pal_num, #paleta de colores
                values = c(min(ged_confl$best):max(ged_confl$best)), #valores mínimo y máximo
                position = "bottomleft", #posición de la leyenda
                title = "Baixes estimades", #título
                opacity = 0.8) #transparencia de la leyenda

    En el segundo ejemplo, se quiere saber los conflictos (conflict_name) existentes en un país (country) determinado:

    1. Se ha creado un nuevo objeto ged_ctr en el cual solo hay los datos del país que se quiere observar.
    2. En el objeto pal_fact se ha guardado la paleta de colores de la variable que se quiere observar (conflict_name)6.
    3. Se ha definido el tipo de mapa CartoDB.Voyager.
  • 6 Se pueden ver otros colores de paleta en esta web.

  • ged_ctr <- ged |> 
      filter(country == "Cameroon")
    pal_fact <- colorFactor(palette = "Dark2", domain = ged_ctr$conflict_name)
    
    ged_ctr |> 
      leaflet() |> 
      addProviderTiles(providers$CartoDB.Voyager) |> 
      addCircleMarkers(lng = ~longitude, 
                       lat = ~latitude,
                       popup = ~conflict_name,                   
                       color = ~pal_fact(conflict_name),
                       label = ~conflict_name) |> 
      addLegend(position = "bottomright", pal = pal_fact,
                values = c(unique(ged_ctr$conflict_name)),
                opacity = 0.6)

    6.7 Aprender más

    Si quieres practicar la creación de mapas con otros paquetes de R, otras bases de datos u otras geometrías, puedes probar de hacer los ejercicios siguientes: