6  Exportación a Excel

Personalmente, recomendaría almacenar un dataframe en un formato que optimice el espacio a usar en el disco duro; y solo realizar una exportación a un fichero Excel si esto es realmente necesario.

Partamos entonces del hecho que sí necesitamos exportar nuestro dataframe a Excel. Existe más de un par de paquetes que permiten exportar un dataframe a un archivo Excel usando R. En la presente sección mostraremos la exportación con el paquete openxlsx, el cual contiene varias opciones de personalización en la exportación.

Usaremos el dataset map_DIST del paquete mapsPERU. Para poder visualizar correctamente el contenido de este dataset, primero debemos activar el paquete sf, pues el mencionado dataset contiene multipolígonos.

library(sf)
library(mapsPERU)

df <- mapsPERU::map_DIST

Observamos un resumen de los datos.

library(tidyverse)

glimpse(df)
Rows: 1,891
Columns: 13
$ COD_REGION       <chr> "010000", "010000", "010000", "010000", "010000", "01…
$ COD_DEPARTAMENTO <chr> "010000", "010000", "010000", "010000", "010000", "01…
$ COD_PROVINCIA    <chr> "010100", "010100", "010100", "010100", "010100", "01…
$ COD_DISTRITO     <chr> "010101", "010102", "010103", "010104", "010105", "01…
$ REGION           <chr> "Amazonas", "Amazonas", "Amazonas", "Amazonas", "Amaz…
$ DEPARTAMENTO     <chr> "Amazonas", "Amazonas", "Amazonas", "Amazonas", "Amaz…
$ PROVINCIA        <chr> "Chachapoyas", "Chachapoyas", "Chachapoyas", "Chachap…
$ DISTRITO         <chr> "Chachapoyas", "Asunción", "Balsas", "Cheto", "Chiliq…
$ REGION_NATURAL   <chr> "Sierra", "Sierra", "Selva", "Sierra", "Sierra", "Sie…
$ POBLACION_2025   <dbl> 41843, 269, 1125, 716, 554, 1872, 551, 1538, 3279, 37…
$ coords_x         <dbl> -77.8566, -77.7431, -77.9491, -77.6773, -77.7558, -77…
$ coords_y         <dbl> -6.2477, -5.9963, -6.8077, -6.2979, -6.0784, -6.9349,…
$ geometry         <MULTIPOLYGON [°]> MULTIPOLYGON (((-77.8858 -6..., MULTIPOL…

Vamos a generar una pequeña tabla resumen, para mostrar cómo exportarla luego a Excel.

tabla <- df |>
  group_by(DEPARTAMENTO, PROVINCIA) |>
  summarise(NUM_DIST = n()) # número de distritos

tabla
# A tibble: 196 × 3
# Groups:   DEPARTAMENTO [25]
   DEPARTAMENTO PROVINCIA            NUM_DIST
   <chr>        <chr>                   <int>
 1 Amazonas     Bagua                       6
 2 Amazonas     Bongará                    12
 3 Amazonas     Chachapoyas                21
 4 Amazonas     Condorcanqui                3
 5 Amazonas     Luya                       23
 6 Amazonas     Rodríguez de Mendoza       12
 7 Amazonas     Utcubamba                   7
 8 Apurímac     Abancay                     9
 9 Apurímac     Andahuaylas                20
10 Apurímac     Antabamba                   7
# ℹ 186 more rows

Lo primero es activar el paquete openxlsx

library(openxlsx)

Luego, podemos simplemente usar la función write.xlsx y exportar nuestra tabla resumen.

write.xlsx(x=tabla, file="NombreArchivo.xlsx")

6.1 Personalizar el encabezado

Con la función createStyle del mismo paquete openxlsx estableceremos los detalles para el encabezado.

estilo <- createStyle(textDecoration="bold", # estilo de texto
                      fontColour="yellow", # color del texto
                      fontSize=10, # tamaño del texto
                      fontName="Arial", # tipo de letra
                      fgFill="black", # color del fondo
                      wrapText=T, # texto ajustado
                      border="TopBottomLeftRight", # borde
                      halign="center", # alineación horizontal
                      valign="top" # alineación vertical
                      )

Incluimos el estilo en la opción headerStyle.

write.xlsx(x=tabla,
           file="NombreArchivo.xlsx",
           headerStyle=estilo)