VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de...

25
1 VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO R-SHINY Y R-MARKDOWN Noa Veiguela Fernández 1 , Esther López Vizcaíno, Ana Andión Hermida Instituto Galego de Estatística Resumen: En el Servicio de Difusión e Información del Instituto Galego de Estatística (IGE) tenemos encomendada la tarea, como su nombre indica, de dar a conocer el trabajo del Instituto. La principal herramienta en esta labor de difusión la constituye la página web. Desde su creación, hace ya casi dos décadas, ha evolucionado considerablemente, adaptándose a los desarrollos tecnológicos que han tenido lugar en el campo del diseño web. En los últimos tiempos, a esta labor continua de adaptación técnica, se han sumado nuevos retos: Diseñar productos adaptados al público actual, que demanda una web dinámica con la que poder interactuar La necesidad de automatizar procesos y tareas repetitivas, como la elaboración periódica de informes Buscar programas que permitan acercarse al diseño web a los estadísticos, sin necesidad de contar con un conocimiento profundo de los lenguajes de programación HTML, CSS o JavaScript En esta ponencia presentamos cómo estamos afrontando estos nuevos retos en el IGE. En este Instituto estamos comprometidos con el desarrollo del software libre R y recurrimos a él siempre que podemos en la difusión de la información estadística. En esta ocasión nos hemos servido, de nuevo, de dos de sus librerías: R-Shiny y R-Markdown. La primera permite crear aplicaciones web dinámicas en las que el usuario se comunica con el sistema informativo que está detrás de la web, obteniendo de ella lo que necesita en cada momento. La segunda librería permite producir informes en diversos formatos (html, pdf, word), reduciendo enormemente el tiempo de trabajo dedicado a esta labor. Una de las ventajas de ambas librerías es que, sin contar con un gran bagaje en el diseño web, se pueden crear páginas web muy completas y vistosas. Finalmente, aprovechamos la ocasión para presentar una iniciativa que nos está permitiendo dar a conocer al IGE entre la gente joven: el programa de visitas de escolares. Mediante esta iniciativa, alumnos de ESO y bachillerato de todo Galicia se acercan cada año a nuestras instalaciones para conocer nuestro trabajo. Sirviéndonos, de nuevo, de la librería R-Shiny, hemos desarrollado una aplicación informática que, de una forma lúdica y amena, permite a los alumnos familiarizarse con el uso de datos y fuentes estadísticas. Palabras clave: web dinámica, automatización procesos, R-Shiny, R-Markdown 1 e-mail: [email protected]

Transcript of VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de...

Page 1: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

1

VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO

R-SHINY Y R-MARKDOWN

Noa Veiguela Fernández1, Esther López Vizcaíno, Ana Andión Hermida

Instituto Galego de Estatística

Resumen:

En el Servicio de Difusión e Información del Instituto Galego de Estatística (IGE) tenemos encomendada la tarea, como

su nombre indica, de dar a conocer el trabajo del Instituto. La principal herramienta en esta labor de difusión la

constituye la página web. Desde su creación, hace ya casi dos décadas, ha evolucionado considerablemente,

adaptándose a los desarrollos tecnológicos que han tenido lugar en el campo del diseño web. En los últimos tiempos, a

esta labor continua de adaptación técnica, se han sumado nuevos retos:

Diseñar productos adaptados al público actual, que demanda una web dinámica con la que poder interactuar

La necesidad de automatizar procesos y tareas repetitivas, como la elaboración periódica de informes

Buscar programas que permitan acercarse al diseño web a los estadísticos, sin necesidad de contar con un

conocimiento profundo de los lenguajes de programación HTML, CSS o JavaScript

En esta ponencia presentamos cómo estamos afrontando estos nuevos retos en el IGE. En este Instituto estamos

comprometidos con el desarrollo del software libre R y recurrimos a él siempre que podemos en la difusión de la

información estadística. En esta ocasión nos hemos servido, de nuevo, de dos de sus librerías: R-Shiny y R-Markdown.

La primera permite crear aplicaciones web dinámicas en las que el usuario se comunica con el sistema informativo que

está detrás de la web, obteniendo de ella lo que necesita en cada momento. La segunda librería permite producir

informes en diversos formatos (html, pdf, word), reduciendo enormemente el tiempo de trabajo dedicado a esta labor.

Una de las ventajas de ambas librerías es que, sin contar con un gran bagaje en el diseño web, se pueden crear

páginas web muy completas y vistosas.

Finalmente, aprovechamos la ocasión para presentar una iniciativa que nos está permitiendo dar a conocer al IGE

entre la gente joven: el programa de visitas de escolares. Mediante esta iniciativa, alumnos de ESO y bachillerato de

todo Galicia se acercan cada año a nuestras instalaciones para conocer nuestro trabajo. Sirviéndonos, de nuevo, de la

librería R-Shiny, hemos desarrollado una aplicación informática que, de una forma lúdica y amena, permite a los

alumnos familiarizarse con el uso de datos y fuentes estadísticas.

Palabras clave: web dinámica, automatización procesos, R-Shiny, R-Markdown

1 e-mail: [email protected]

Page 2: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

2

1. Introducción

El décimo-quinto principio del “Código de buenas prácticas de las estadística europeas”,

adoptado por el Comité del Sistema Estadístico Europeo, establece que las estadísticas

europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada

y conveniente”2. El cumplimiento de este principio se evalúa por medio de una serie de

indicadores, uno de los cuales establece que los servicios de difusión deberán utilizar “una

tecnología moderna de información y comunicación, métodos, plataformas y estándares de

datos abiertos”3. Bajo este principio subyace la necesidad de adaptar los contenidos a los

distintos tipos de usuarios que visitan las páginas web de los organismos estadísticas4. En la

actualidad, esta es la herramienta más empleada para difundir los resultados estadísticos y así

se contempla en el principio décimo-quinto del Código. Por tanto, los servicios estadísticos

deben mantener al día sus portales, implementando los últimos desarrollos tecnológicos en el

campo del diseño web e impidiendo su obsolescencia.

Para poder adaptar nuestros contenidos y modos de difusión a los distintos tipos de

usuarios, primero debemos saber cuáles son sus necesidades informativas. Podemos

establecer dos grandes categorías de “oyentes”: el usuario especializado, con experiencia en el

manejo de datos estadísticos y en la navegación por webs de esta índole, y el usuario no

especializado, poco acostumbrado al manejo e interpretación de datos estadísticos. Este

segundo grupo de usuarios busca en las webs de estadística un conocimiento genérico de la

realidad socioeconómica que le rodea y acceder a él de forma sencilla. Además, tanto un

grupo, como otro, demandan cada vez más una web interactiva que les ofrezca herramientas

de consulta y visualización personalizadas.

Al primer grupo de usuarios dirigiremos productos complejos, como la consulta multi-

tabla, que proporciona acceso a las bases de datos donde se almacena la información

estadística para que el usuario se construya su propia tabla de resultados. Se trata de un

formato de difusión abierto en el que la carga de interpretar los resultados estadísticos recae

sobre el propio usuario. Sin embargo, para el segundo grupo de “clientes” puede ser más

recomendable recurrir a un formato de difusión cerrado, que ofrezca los resultados estadísticos

ya tratados, mediante compendios de datos tabulados, acompañados de representaciones

gráficas y de notas explicativas”5. Una tercera vía para difundir la estadística consiste en

combinar las dos anteriores en aplicaciones web dinámicas que permitan al usuario un cierto

2 COMITÉ DEL SISTEMA ESTADÍSTICO EUROPEO (2017), pág. 10.

3 En su redacción original, el Código establecía también como indicador para evaluar el cumplimiento del

principio 15 difundir “copia impresa tradicional” en los casos que requiriesen este formato. En el IGE creemos que ofrecer un archivo descargable, susceptible de ser impreso, puede ser aconsejable en algunos casos que se detallarán en el texto, como en la publicación de informes o resúmenes de resultados. 4 En UNECE (2009), pág. 1, también se pone el énfasis en que el mensaje debe adaptarse al público

objetivo: “la primera decisión importante que debes tomar es elegir con precisión una audiencia: ¿para quién estoy escribiendo? Sencillamente, el público es quien manda. En general, lo que el público quiere es lo que deberías ofrecerle”. 5 VEIGUELA FERNÁNDEZ, Noa (2016), pág. 2.

Page 3: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

3

grado de autonomía a la hora de decidir lo que se consulta, pero ofrezcan el resultado de la

misma ya dispuesto en forma de tablas, gráficos y mapas. Además, es recomendable que las

tres vías permitan, en mayor o menor medida, la descarga de la información en formatos que

permitan su almacenaje y su impresión, como las hojas de cálculo o los archivos pdf.

El principio décimo-quinto del Código plantea una serie de retos en la difusión de

estadísticas, difíciles de alcanzar para los organismos de carácter regional, como el Instituto

Galego de Estatística (IGE), cuyas plantillas de trabajadores y trabajadoras son mucho más

modestas que las de los organismos nacionales y supranacionales. Ello obliga al personal de

estos servicios estadísticos a acometer múltiples funciones, entre ellas la del diseño web, más

cercana a la rama de la informática que a la de la estadística. Sin embargo, la necesidad

agudiza el ingenuo y, lejos de rehusar el desafío, en el IGE nos hemos propuesto desarrollar la

web moderna y dinámica que demanda la ciudadanía gallega.

Para acometer las tres vías de difusión mencionadas en el párrafo anterior con la

plantilla de que disponemos, debemos…

Recurrir a automatizar procesos y tareas que se repiten con frecuencia, como la

elaboración periódica de informes de resultados, de forma que se minimice el tiempo y

personal empleado en su redacción.

Buscar programas que permitan acercarse al diseño web a los estadísticos, sin

necesidad de contar con un conocimiento profundo de los lenguajes de programación

HTML, CSS o Javascript.

Y todo ello con un coste económico adicional nulo, por lo que los programas que empleemos

para lograrlo han de ser gratuitos.

En el IGE estamos comprometidos con el desarrollo del software libre R y hemos

recurrido a él para desarrollar varias de las herramientas de difusión de nuestra web. Esta

ponencia versa sobre dos de sus librerías: R-Shiny y R-Markdown. La primera permite crear las

aplicaciones web dinámicas que mencionamos anteriormente. En el capítulo 2 se expondrán

las diversas funcionalidades de esta librería, sirviéndonos de las aplicaciones desarrolladas

para la web del IGE a modo de ejemplo. La segunda produce de forma simultánea informes en

diversos formatos (html, pdf, word). El capítulo 3 se ha dedicado al desarrollo de este paquete;

de nuevo, se expondrán ejemplos de informes realizados con él y difundidos en la web del IGE

para ejemplificar su funcionamiento. Ambas librerías pueden conectarse con las bases de

datos que almacenan la información difundida, de forma que capturen directamente y en

tiempo real los datos almacenados cuando el usuario accede a la aplicación o al informe.

Además, todo lo que contienen (tablas, gráficos, mapas e incluso texto) puede programarse de

forma que muestren la información más actual de una estadística, reduciendo el tiempo que

habría de dedicar una persona a la actualización periódica de informes mensuales o anuales

que requirieran la actualización manual.

Finalmente, y aunque de momento no se ha mencionado en la exposición, no debemos

olvidarnos que existe un tercer grupo de usuarios, si cabe más importante que los anteriores,

pues de ellos depende el futuro de la estadística pública: los jóvenes. Para hacerles llegar

Page 4: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

4

nuestro mensaje tenemos que adaptar el nivel de los contenidos a su edad y, por tanto, a su

nivel de conocimiento. Pero también debemos adaptar el continente, sirviéndonos también

tanto de informes como de aplicaciones web, pero dotándolos de mayor vistosidad e

interactividad; o bien, envolviéndolas en un entorno lúdico que, mediante el juego, les acerque

a nuestra rama de estudio. El cuarto capítulo de la ponencia narra las iniciativas emprendidas

en el seno del IGE para lograr captar la atención del público joven. Aprovechamos también el

foro que nos brindan las JECAS para presentar el programa de visitas de institutos al IGE.

2. Aplicaciones web dinámicas con R-Shiny

Shiny es un paquete perteneciente al software libre R que permite crear aplicaciones

web dinámicas, sin necesidad de disponer de conocimientos avanzados en el campo del

diseño web. Una aplicación dinámica es aquella en la que el usuario, además de recibir

información a través de la web, puede interactuar con ella. ¿Cómo? Por medio de la

introducción de widgets: elementos gráficos que permiten que el usuario se comunique con el

sistema de información que está “detrás” de la web (como cajas para introducir texto, listas de

elementos, botones o iconos que representan acciones, etc.). De hecho, se trata de sistemas

de entrada-salida (input-output), cuyo funcionamiento requiere necesariamente la formulación

de una petición al servidor (si se trata de una caja de texto, que se escriba una palabra o

conjunto de palabras; si se trata de un listado de elementos, que se selecciones uno de ellos; si

se trata de un botón que permite realizar una acción, que se lo presione, etc.); esto es lo que se

conoce como entrada o input, en terminología inglesa. Una vez formulada la petición, el

resultado mostrado se conoce como salida o output. En la imagen 2.1 se muestra un ejemplo

sencillo de widget, en el que el usuario debe decidir qué mapa visualizar del listado que se

pone a su disposición.

En la pasada edición de las JECAS tuvimos ocasión de presentar una ponencia que

versaba sobre el funcionamiento de esta librería6. Ello nos permite, en esta ocasión, dedicar

menos espacio a la explicación del funcionamiento de la misma y centrarnos en las novedades

que hemos introducido en nuestras aplicaciones web con Shiny desde 2016. Con todo,

comenzamos este capítulo con una sucinta descripción sobre las funcionalidades y primeros

pasos con Shiny, que servirá de guía al lector no familiarizado con esta librería7.

Para programar una aplicación interactiva con Shiny, desde las más simples (como la de

la imagen 2.1), hasta las más elaboradas, debemos crear un directorio de trabajo en nuestro

ordenador, en el que colocaremos tres elementos:

Un archivo de texto (ui.R), que contendrá el código que permite la visualización de

widgets y otros elementos en la página web, así como el código que controla el diseño

6 VEIGUELA FERNÁNDEZ, Noa (2016).

7 La descripción ofrecida aquí se puede completar revisando la ponencia mencionada en la nota a pie de

página anterior.

Page 5: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

5

y aspecto de la aplicación: la disposición de los elementos a lo largo y ancho de la

página, los colores, el tipo de letra, etc.

Un archivo de texto (server.R), que contendrá las instrucciones que necesita el servidor

para construir los distintos objetos que se muestran en la aplicación web: tablas,

gráficos, mapas, diagramas, etc..

Una carpeta (www) donde alojar físicamente los archivos que se visualizarán en la

aplicación o que se necesitan para crear los objetos mencionados en el punto anterior:

imágenes, bases de datos, etc.

Imagen 2.1. Widget para la visualización de mapas del PIB, PIB por habitante y de la

estructura del VEB por municipios y comarcas

Fuente: imagen extraída de la aplicación de consulta web del PIB municipal y comarcal de Galicia

(http://www.ige.eu/Shiny/PIB_muni/)

A continuación, instalamos las últimas versiones disponibles de R y de RStudio, abrimos

este último programa y nos situamos en nuestro directorio de trabajo. Es necesario, además,

instalar todas las librerías que se empleen en la construcción de la aplicación, entre ellas,

Shiny, e invocarlas en los archivos ui.R y server.R (library(shiny)). El primer archivo debe

comenzar por la sentencia shinyUI(fluidPage()) y el segundo por la sentencia

shinyServer(function(input,output){}). El código restante debe escribirse dentro de los

paréntesis que acompañan a la función fluidPage en el primer caso y dentro de las llaves que

acompañan a la función function(input,output) en el segundo. Una vez hecho esto, podemos

empezar a crear la aplicación. Para ello, R-Shiny ofrece distintos comandos o funciones, en

función de lo que se desee introducir, que se pueden agrupar en cuatro bloques:

Page 6: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

6

Funciones para crear los elementos que solicitan al usuario la entrada de valores o su

interacción (o widgets, como mencionamos más arriba): existen distintos tipos de

widgets; los más empleados se muestran en la imagen 2.2: actionButton,

checkboxGroupInput, dateInput, dateRangeInput, fileInput, numericInput, radioButtons,

selectInput, sliderInput, textInput, etc.

Imagen 2.2. Listado de los diferentes widgets que permite crear R-Shiny

Fuente: imagen extraída del tutorial sobre R-Shiny disponible en el siguiente enlace: http://shiny.rstudio.com/tutorial/

Sentencias de creación de objetos web: determinan el tipo de objeto que devolverá el

servidor; R-Shiny permite crear imágenes, tablas, gráficos, etc., tanto estáticos como

dinámicos, que permiten la navegación a través de ellos. A parte de los objetos que

ofrece la propia librería, existen otras muchas que disponen de extensiones

implementadas para su funcionamiento en R-Shiny: renderImage, renderPlot,

renderTable, renderDataTable (para introducir tablas creadas con la librería DT),

renderText, renderUI, renderGvis (para introducir gráficos creados con la librería

googleVis), renderVisNetwork (diagramas creados con visNetwork), renderPlotly

(gráficos con Plotly), renderLeaflet (mapas con Leaflet), etc.

Sentencias de introducción de objetos web: una vez creado el elemento con las

funciones del bloque anterior, las de este grupo permiten que se visualice en la web.

Casi cada sentencia de creación tiene su correlato en las funciones de introducción:

imageOutput, plotOutput, tableOutput, dataTableOutput, textOutput, uiOutput,

htmlOutput, visNetworkOutput, plotlyOutput, etc.; así, por ejemplo, si empleamos la

librería R-Leaflet para crear un mapa dinámico, el código de creación debe incluirse

dentro de la función renderLeaflet(); el mapa resultante se incrusta en la página web

por medio del comando leafletOutput().

Page 7: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

7

Funciones que definen la interfaz gráfica de usuario; en este grupo se encuentran los

comandos para crear la estructura básica de la web donde se irán insiriendo los

widgets: dividirla en bloques, en columnas, en sub-páginas que permitan la navegación

del usuario, etc.; algunas de las funciones más útiles de este bloque son headerPanel,

mainPanel, tabPanel, tabsetPanel, sidebarLayout, sidebarPanel, navbarPage,

navlistPanel, etc8. Estas funciones no son estrictamente necesarias para crear una

aplicación web pero son muy útiles para personalizarla y embellecerla.

Para funcionar correctamente, cada una de los widgets creados con R-Shiny debe contar con

al menos un comando perteneciente a cada uno de los tres primeros bloques: una función para

crear el input (el elemento donde el usuario debe formular su petición), una función para crear

el output y una función para que este se insiera en la aplicación web.

Tabla 2.3. Código de creación del widget de selección de mapas para la aplicación del PIB

municipal y comarcal de Galicia

Archivo ui.R Archivo server.R

radioButtons("mapa","Escolle un mapa”,

c("Taxa de variación (%) do PIB entre 2010 e 2012

municipal",

"Taxa de variación (%) do PIB entre 2010 e 2012

comarcal",

"Índice do PIB por habitante municipal (Galicia=100).

Ano 2012",

"Índice do PIB por habitante comarcal (Galicia=100).

Ano 2012",

"Especialización produtiva das comarcas. Ano 2012",

[... el código continua] ))

imageOutput("imaxe1")

output$imaxe1 <- renderImage({

if (is.null(input$mapa)) return(NULL)

if (input$mapa == "Taxa de variación (%) do PIB

entre 2010 e 2012 municipal")

{return(list(src = "www/mapa11.png",

contentType = "image/png"))}

else if (input$mapa == "Taxa de variación (%) do PIB

entre 2010 e 2012 comarcal")

{return(list(src = "www/mapa12.png",

contentType = "image/png"))}

else if [... el código continúa] }, deleteFile = FALSE)

Fuente: elaboración propia a partir del código interno de creación de la aplicación de consulta web del PIB municipal y

comarcal de Galicia (http://www.ige.eu/Shiny/PIB_muni/)

Por ejemplo, el widget que se muestra en la imagen 2.1 se ha creado por medio de la

función radioButtons() (consultar el código en tabla 2.3); en esta sencilla aplicación, se ofrecen

una serie de mapas que condensan la información disponible a nivel municipal y comarcal en el

Sistema de Cuentas Económicas de Galicia. En este widget el usuario selecciona el mapa que

quiere visualizar pulsando sobre uno de los elementos del listado; su solicitud (input) se

almacena en un objeto interno al que hemos dado el nombre de mapa. Por medio de la función

renderImage({}) creamos un segundo objeto, imaxe1, donde vinculamos cada una de las

posibles solicitudes con uno de los archivos guardados en la carpeta www (que son las

8 En el siguiente enlace se encuentra la descripción de cada una de las funciones comentadas, así como

el listado completo de todos los comandos de la librería R-Shiny: https://shiny.rstudio.com/reference/shiny/1.1.0/

Page 8: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

8

imágenes de los mapas). Así, si el usuario selecciona el elemento “Taxa de variación (%) do

PIB entre 2010 e 2012 municipal” (input$mapa==”Taxa de variación (%) do PIB entre 2010 e

2012”), en imaxe1 se guardará el objeto mapa11.png. Finalmente, para que esta imagen se

muestre es necesario introducirla en la aplicación por medio de la sentencia

imageOutput(“imaxe1”).

El ejemplo utilizado para explicar el funcionamiento de R-Shiny corresponde a una de las

primeras aplicaciones web diseñadas con esta librería. Como se puede comprobar, se trata de

un diseño muy básico que hemos ido puliendo con el paso del tiempo, gracias también a la

aparición de nuevas funcionalidades y librerías que interactúan con Shiny. Y es que, desde el

2016, el número de usuarios de este paquete se ha incrementado de forma exponencial,

nutriéndola con nuevas aportaciones que han contribuido a su mejora. De todas ellas, nos

gustaría destacar las siguientes:

El desarrollo de nuevas funciones dentro del paquete Shiny

La aparición de librerías que permiten introducir mapas y gráficos dinámicos, de gran

calidad visual, como las ya mencionadas R-Leaflet y R-Plotly

La posibilidad de introducir directamente código javascript en Shiny con Shinyjs

Para ilustrar en qué consisten estos avances, nos vamos a servir de una de las últimas

aplicaciones creadas para la web del IGE. Se trata de un test interactivo, dirigido a estudiantes

de ESO y Bachillerato, sobre las características socio-económicas del municipio en el que

residen9. Como se aprecia en la imagen 2.4, cuando acceden a la aplicación, aparece un mapa

de Galicia con la delimitación de los 313 municipios que la conforman en la actualidad. El

escolar debe pulsar sobre su localidad y, automáticamente, accede a un listado de 10

interrogantes que debe resolver. Cuando responde de forma acertada a una pregunta, la

animación que aparece en el margen derecho de la aplicación (imágenes 2.5 y 2.6) cambia y

muestra una cara feliz; por el contrario, cuando se equivoca al responder, la animación se

transforma en un emoticono triste. También se muestra la solución a la respuesta, junto con un

apartado para ampliar conocimientos sobre el tema tratado en la pregunta (imagen 2.6).

La aplicación se ha diseñado de forma que resulte vistosa y atrayente al público joven,

con colores fuertes, emoticonos en movimiento y botones que permiten al estudiante comenzar

de nuevo, ampliar u ocultar la información que desee. Además, las cuestiones del test no están

referidas a un momento concreto del tiempo, sino que se actualizan de forma automática para

ofrecer el dato más reciente disponible en la web del IGE para cada cuestión: la aplicación

conecta de forma autónoma con las bases de datos en las que se aloja la información

estadística publicada, sin que deban mediar para ello ni informáticos ni estadísticos. Esto es,

una vez hecha e introducida en el servidor web, no es necesario ningún trabajo rutinario de

mantenimiento.

En las imágenes siguientes se ofrecen algunas pinceladas del código que está por

detrás de la aplicación. Por ejemplo, para crear el mapa de municipios se ha utilizado la librería

9 En el capítulo 4 de la ponencia volvemos a referirnos a esta aplicación web, cuando hablemos sobre el

programa de visitas de escolares al IGE.

Page 9: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

9

R-Leaflet; este paquete permite personalizar estos objetos de múltiples formas: añadirles

sucesivas capas con información, ventanas emergentes (pop-ups) que se muestran al pasar el

cursor por encima de una delimitación geográfica, marcadores para resaltar un espacio

concreto, botones para alejar/acercar el mapa o modificar su aspecto, etc. R-Leaflet también

permite añadir acciones al mapa, es decir, eventos que ocurren cuando el usuario pulsa sobre

una zona del mapa (map click event). Con esta funcionalidad y los comandos observeEvent() e

insertTab()10

de R-Shiny hemos desarrollado el widget que aparece en la imagen 2.4: cuando el

usuario pulsa sobre un determinado espacio geográfico, la pestaña de selección del municipio

da paso a una nueva pestaña en la que aparece el test con las 10 preguntas que debe

responder el alumno. Además, a nivel interno, al realizar esta acción, la aplicación almacena el

código que representa el municipio seleccionado en un objeto virtual (BDInput0). Este código lo

empleamos para filtrar la información referida al espacio solicitado en las bases de datos del

IGE y personalizar el test para este espacio concreto.

Veamos un ejemplo de ello: en la imagen 2.6 aparece una pirámide de población referida

al municipio de Ribadeo, ayuntamiento seleccionado por nuestro hipotético alumno para

realizar el test. Para crear este gráfico hemos empleado la librería R-Plotly (en el cuadro 2.8 se

detallan los comandos empleados). Al pulsar sobre este espacio en el mapa, en el objeto

BDInput0 se almacena el valor 27051, que es el código que identifica a Ribadeo en las bases

de datos que almacenan la información difundida por el IGE. A continuación, acudimos a la

web y descargamos la población de los distintos municipios de Galicia (objeto Pregunta4),

cruzada por sexo y grupo de edad, en formato csv. El objeto BDInput0 nos permite filtrar

únicamente la información referida a Ribadeo (creando el objeto tb1). Posteriormente, mediante

una serie de comandos que no se detallan en el cuadro 2.7 (por falta de espacio), creamos un

data.frame (objeto tb2) con los datos listos para representar. Una vez creada la representación,

personalizamos su color, sus ejes, la leyenda, etc., con los múltiples comandos que provee R-

Plotly para ello. Además, por medio de las etiquetas hoverinfo=’text’ y text=~abs_pop,

definimos las etiquetas que aparecerán cuando el alumno sitúe el cursor sobre la pirámide,

indicándole el número de hombres o de mujeres que representa cada una de las barras del

gráfico.

Finalmente, para proporcionarle al alumno la posibilidad de comenzar de nuevo el test,

hemos introducido un botón (“Se queres comezar de novo, preme aquí”), al que hemos

asociado la función location.reload() de Javascript, que permite refrescar la página web

(imagen 2.5). Para crear los botones que permiten mostrar información adicional u ocultarla (“?

Máis información” y “Preme aquí para ocultar a información”) también se ha recurrido a la

librería Shinyjs, que permite introducir directamente código Javascript en la aplicación (imagen

2.6).

10

El comando observeEvent() permite asociar la realización de una determinada acción en respuesta a un evento; la función insertTab() introduce una nueva pestaña en la aplicación web.

Page 10: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

10

Imagen 2.4. Widget para la selección del municipio sobre el que versará el test en la aplicación interactiva dirigida a escolares

Resultado Código

Fuente: imagen extraída de la aplicación Canto sabes do teu concello??? (http://www.ige.eu/Shiny/Test_personalizado_concellos/)

Mapa realizado con R-Leaflet, introduciendo además

la capa de OpenStreetMap de fondo

Widget de selección de municipio, realizado

mediante la herramienta map click event

subministrada en la librería R-Leaflet y las funciones

observe_event() e insertTab() de R-Shiny: al pulsar,

la pestaña de selección del municipio da paso a una

nueva pestaña en la que aparece un test con 10

preguntas que el alumno debe responder, referidas

al municipio seleccionado…

observeEvent(input$mapa_base_shape_click,

{inserTab(inputId=”test”,

tabPanel(“Test sobre o teu concello”))

[… el código continúa]}

Page 11: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

11

Imagen 2.5. Pestaña con el test de 10 preguntas referidas al municipio seleccionado por el alumno

Resultado Código

Fuente: imagen extraída de la aplicación Canto sabes do teu concello??? (http://www.ige.eu/Shiny/Test_personalizado_concellos/)

Widget que permite al alumno comenzar de nuevo el

test: al presionar sobre el botón, se refresca la

página web, desaparece la pestaña “Test sobre o teu

concello” y se vuelve al comienzo de la aplicación

(esto es, a la pestaña de selección del municipio). Se

ha realizado combinando código Javascript (para lo

cual es necesario instalar la librería Shinyjs) con las

funciones observeEvent() y removeTab() (permite

eliminar pestañas de la aplicación)

jscode <- "shinyjs.refresh = function() { location.reload(); }"

useShinyjs()

extendShinyjs(text=jscode,functions=”refresh”),

actionButton(“limpar”,”Se queres comezar de novo, preme aquí”)

observeEvent(input$limpar,{

js$refresh();

removeTab(inputId=”test”,target=”Test sobre o teu

concello”)})

Page 12: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

12

Imagen 2.6. Pestaña con el test de 10 preguntas referidas al municipio seleccionado por el alumno

Resultado Código

Fuente: imagen extraída de la aplicación Canto sabes do teu concello??? (http://www.ige.eu/Shiny/Test_personalizado_concellos/)

observeEvent(input$signo_interrogacion_4,{

showElement(“texto_signo_interrogacion_4”)})

useShinyjs(),

acctionButton(“signo_interrogacion_4”,”Máis información”),

hidden(div(id=”texto_signo_interrogacion_4”,

h4(“Poboación por grupos de idade”),

h4(“2017”),

h5(“Unidade: porcentaxe (%)”),

plotlyOutput(“GRAFICO4_1”),

[…]))

observeEvent(input$ocultar_texto_signo_interrogacion_4,{

hideElement(“texto_signo_interrogacion_4”)})

Page 13: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

13

Cuadro 2.7. Comandos empleados para la creación de la pirámide de población que se

muestra en la imagen 2.6, referida al municipio de Ribadeo

output$GRAFICO4_1 <- renderPlotly({

Pregunta4 <- read.csv("http://www.ige.eu/igebdt/igeapi/csv/datos/5230/T[1:0]", header=TRUE)

View(Pregunta4)

tb1 <- subset(Pregunta4,Pregunta4$CodEspazo==BDInput0())

[… continúa el código]

View(tb2)

tb2 <- tb1

tb2 %>% plot_ly(x=~Poboacion,y=~Idade,color=~Sexo, colors=c("#0051BA","#703572")) %>%

add_bars(orientation='h',hoverinfo='text',text=~abs_pop) %>%

layout(bargap=0.1,barmode='overlay',

xaxis=list(tickmode='array',tickvals=c(-10,-5,0,5,10),ticktext=c('10%','5%','0%','5%','10%')),

yaxis=list(tickmode='array',tickvals=~Idade, ticktext=c("0-4","5-9","10-14","15-19","20-24","25-29",

"30-34","35-39","40-44","45-49","50-54","55-59","60-64","65-69","70-74","75-79","80-84","85 e máis")),

legend = list(orientation="h",xanchor="center",x=0.5,y=-0.5)) })

Fuente: código empleado en la elaboración de la aplicación Canto sabes do teu concello???

(http://www.ige.eu/Shiny/Test_personalizado_concellos/)

Page 14: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

14

3. Automatización de informes periódicos con R-Markdown

Las notas de prensa o los informes de resultados son, a menudo, el método empleado

por los organismos estadísticos para comunicar las principales conclusiones de una operación

estadística. Su objetivo es ofrecer una visión global y resumida de lo que se difunde y van

dirigidos a un público no especializado, no familiarizado con el uso y extracción de datos

estadísticos de una web y/o que necesita inmediatez (como los medios de comunicación). Para

cumplir con esta función y resultar atractivo al público, los resúmenes de resultados no deben

ser demasiado extensos, deben ser claros y sencillos de leer; además, conviene acompañar el

texto de tablas y gráficos que faciliten la comprensión de los datos estadísticos. Como se

señala en la guía “Cómo hacer comprensibles los datos”, elaborada por la Comisión Económica

para Europa de las Naciones Unidas, “un comunicado de prensa eficaz es aquel que: cuenta

una historia acerca de los datos; […]; llama la atención del lector rápidamente con un título o

una imagen; es fácil de entender, interesante y a menudo entretenido” 11

(entre otros

requisitos).

En el IGE difundimos resúmenes de resultados en formato web, esto es, implementados

para su visualización directa en la web mediante la combinación de lenguaje HTML y código

Javascript. Con anterioridad a esta forma de difusión, empleábamos el formato pdf. Decidimos

modificar el modo en que realizábamos y difundíamos los resúmenes porque los primeros

presentan, frente a los segundos, dos ventajas importantes:

Son publicaciones dinámicas, esto es, se nutren directamente de las bases de datos

donde se almacena la información estadística, por lo que siempre están actualizados:

si cambia el dato en la base de datos también lo hace en el informe12

.

La programación de los resúmenes se ha realizado de forma que las tablas y los

gráficos muestren el último dato disponible en la base de datos que está por detrás; por

tanto, no es necesario volver a realizarlas cuando se quiere difundir un nuevo ámbito

temporal; sólo es necesario cambiar el texto que acompaña a las tablas y gráficos (que

es estático). Esto permite ahorrar tiempo13

.

Ahora bien, con el cambio en el formato de difusión, se ha perdido la principal ventaja de los

resúmenes pdf, que consiste en que estos se pueden descargar, guardar e imprimir en formato

papel. Se trata de una foto fija de la operación estadística en un momento concreto del tiempo

de la que, en ocasiones, puede ser necesario guardar una copia.

Dado que ambas formas de realizar informes presentan pros y contras, ¿no deberíamos

combinar ambas? Es decir, ¿y si existiese algún modo de realizar simultáneamente

publicaciones en formato html y en formato pdf? Más aún, ¿y si pudiesen implementarse de tal

forma que, “con darle a un botón”, el informe cambiase para mostrar los datos de un mes

posterior? Ello nos permitiría ahorrar mucho tiempo y esfuerzo a la hora de elaborar informes.

11

COMISIÓN ECONÓMICA PARA EUROPA DE LAS NACIONES UNIDAS (UNECE) (2009), pág. 1. 12

VEIGUELA FERNÁNDEZ, Noa (2016), pág. 2 13

En MARTÍN VILA, María; LÓPEZ VIZCAÍNO, Esther; CALVO OCAMPO, Esther (2014), págs. 17-23, encontrarán más información sobre la difusión de resúmenes e informes de resultados en formato web.

Page 15: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

15

En el IGE, la respuesta a este interrogante la hemos encontrado acudiendo a la librería

Markdown. Perteneciente al software libre R, se trata de un paquete que provee una serie de

funciones que permiten elaborar informes, con elementos, tanto estáticos como dinámicos, y

reproducirlos en distintos formatos (entre ellos, pdf, word y html). No exige disponer de

conocimientos avanzados sobre los lenguajes de programación web HTML, CSS y el código

Javascript. Se puede interconectar con las bases de datos que se encuentran por detrás de las

webs estadísticas y escribir el código de tal forma que todo lo que se muestra en el informe

(tablas, gráficos, y también texto) se actualice cuando los datos sufren variaciones o se

incorpora un ámbito temporal al sistema informativo. Y, al igual que R-Shiny, permite la

introducción de objetos diseñados con otras librerías, como gráficos con R-Plotly o mapas con

R-Leaflet.

Sin pretender ser una guía de uso de R-Markdown, en lo que resta de capítulo

ahondaremos en su utilización. Y como es habitual en nuestra forma de proceder, nos

apoyaremos en diversos resúmenes de resultados realizados para la web del IGE, como

ejemplos de lo que se puede hacer con esta librería. Antes de comenzar, es necesario anticipar

una serie de particularidades a tener en cuenta cuando se trabaja con R-Markdown.

El primer paso consiste en crear un archivo con extensión .Rmd. En el IGE empleamos

el programa RStudio para elaborar, tanto las aplicaciones web con Shiny como los informes

con Markdown, pues posee una interfaz de usuario gráfica que facilita la programación en R,

aunque no es indispensable. Una vez creado este archivo, el siguiente paso consistiría en

definir los elementos que figurarán en el encabezado del informe (título del mismo, fecha de

publicación, etc.); el formato del archivo de salida (html, pdf, word; también ofrece salidas para

Latex, entre otras); la introducción de un índice o tabla de contenidos, si se desea; y la

definición de los parámetros que se emplearán en el informe, acompañados del valor que

recibirán cuando se procese el código. La introducción de parámetros dota de gran dinamismo

al documento y permite ahorrar tiempo. Supongamos que redactamos una nota de prensa en la

que se hacen sucesivas referencias al año de publicación de la estadística. Si establecemos

como parámetro el año y, en lugar de escribir su valor en el texto hacemos mención al

parámetro que lo representa, la próxima vez que se publique el informe nos ahorraremos el

tener que cambiar de forma manual el valor del año; bastará con cambiar la definición del

parámetro. En el ejemplo que se muestra en la imagen 3.1 se percibe más claramente la ayuda

que supone la introducción de parámetros.

Page 16: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

16

Imagen 3.1. Fragmento del resumen de resultados elaborado para la operación Encuesta estructural a hogares. Cuidado de menores y conciliación familiar y

código empleado en su elaboración

Resultado Código

--- title: "Enquisa estrutural a fogares. Coidado de menores e conciliación familiar" output: html_document: toc: yes toc_depth: '4' date: "Resumo de resultados 20/07/2018" params: ano: 2017 --- <hr> #### Introdución A [Enquisa estrutural a fogares (EEF)]( http://www.ige.eu/web/mostrar_actividade_estatistica.jsp?idioma=gl&codigo=0205002) é unha actividade estatística anual dirixida aos fogares galegos co obxecto de obter información sobre as súas características socioeconómicas. Consta de dúas partes: unha primeira de carácter xeral que se repite todos os anos, deseñada para recoller información sobre variables básicas, e unha segunda de carácter específico. No ano `` `r params$ano` `` un dos módulos específicos está dedicado ao coidado de menores e a conciliación familiar. En concreto, recóllese información sobre, entre outros, os seguintes puntos: * O tempo que os menores ata 12 anos pasan en garderías ou escolas * Os servizos adicionais que utilizan (comedor, apertura antes do horario escolar, etc.) * Medidas e solucións que adoptan os pais á hora de conciliar a súa vida laboral co coidado dos nenos, incluíndo os coidados proporcionados por outras persoas (avós, etc.) <hr> #### Asistencia a centros de educación infantil de 1º ciclo En Galicia, no ano `` `r params$ano` ``, había 32.311 nenos e nenas que asistían a centros de educación infantil de primeiro ciclo (garderías, escolas infantís, etc.), o que supón o 49,29% do total de nenos e nenas nesta etapa. A asistencia media a estes centros foi de 24,76 horas semanais.

Fuente: imagen extraída de la versión web del informe

(https://www.ige.eu/estatico/html/gl/ecv/PDF/Resumo_resultados_EEF_Coidado_menores_2017.pdf)

Page 17: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

17

R-Markdown posee una sintaxis propia para definir los elementos comentados en el

párrafo anterior. Así, el título debe figurar entrecomillado y precedido del código title:; con la

fecha de publicación sucede algo similar (debe entrecomillarse y escribirse a continuación de

date:). La introducción del índice se realiza por medio del código toc: yes, y con la terminología

toc_depth: “4” se especifican las líneas de código que figurarán en el mismo; por ejemplo, el

número 4 hace mención a los encabezados de tipo 4, que son aquellas líneas de texto que

figuran precedidas de cuatro almohadillas (####); estas son las que se trasladarán al índice

como títulos de capítulo. La definición de parámetros requiere la introducción del código

params:, seguido del nombre del parámetro y el valor. Finalmente, el formato de salida se

especifica con el código output: html_document (archivo html), output: pdf_document (archivo

pdf), output: word_document (archivo word), etc. En el siguiente enlace puede consultarse la

hoja de ayuda rápida de la librería R-Markdown, donde se detalla buena parte de la sintaxis

propia de esta librería: https://www.rstudio.com/wp-content/uploads/2015/02/rmarkdown-

cheatsheet.pdf

El siguiente punto a tratar es establecer la hoja de estilos del informe, esto es, el formato

del texto y demás elementos que lo componen. El paquete R-Markdown ofrece unas hojas de

estilo por defecto para los distintos formatos de salida, que se pueden alterar de tres formas

distintas:

Crear una propia y forzar a que el programa la utilice al procesar el informe mediante

las sentencias html_document: css: hoja_estilo.css (para salida en html, donde el

término hoja_estilo es el nombre del archivo en que figura la nueva hoja de estilos a

aplicar), word_document: reference_docx: hoja_estilo.docx (la forma de cambiar el

formato de salida en pdf es más complicado, por lo que no profundizaré en esta

ponencia en él).

Introducir modificaciones en las hojas de estilo que emplea R-Markdown por defecto.

En el caso de publicaciones en formato web, se pueden definir los estilos dentro del

propio informe, empleando código CSS y situándolos dentro del comando <style

type=”text/css”> </style>.

Además, R-Markdown ofrece atajos para formatear de forma rápida algunos elementos del

texto, como incluir títulos, poner palabras en negrita o en cursiva, hacer listas de términos, etc.

(en la ayuda rápida a la que se accede por medio del enlace introducido en el párrafo anterior

se especifica la sintaxis más habitual para dar formato al texto). Si el archivo procesado tiene la

extensión .html, también se pueden emplear los comandos propios de este lenguaje.

Una vez definidos los elementos de cabecera del informe y el formato del mismo, el

penúltimo paso consistiría en “ponerse a escribir”; es decir, elaborar el informe propiamente

dicho. El texto se introduce de forma directa, sin necesidad de emplear ningún código de

programación, excepto cuando se desee hacer mención a un parámetro, que debe introducirse

de la siguiente forma: `` `r params$nombre` `` (donde el término nombre es el nombre definido

para el parámetro en el encabezado del informe). Además, R-Markdown permite incorporar al

texto fragmentos de código para la creación de objetos que faciliten la comprensión del texto,

Page 18: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

18

como imágenes, tablas, gráficos o mapas, entre otros. Los fragmentos de código deben

incorporarse dentro de la siguiente sintaxis: ```{r} código ```; R-Markdown ejecuta el código

introducido e incorpora al informe los resultados de la ejecución. Esta, a su vez, puede

personalizarse por medio de una serie de argumentos (que irán dentro de las llaves), para, por

ejemplo, hacer que se muestre el código empleado además del resultado de su ejecución, o los

avisos de error que pudieran surgir, o los comentarios que acompañan al código, etc.

Tabla 3.2. Parámetros empleados para definir qué debe hacer R-Markdown con los fragmentos

de código introducidos

Parámetro Valor por defecto

Efecto producido

eval TRUE Indica si se va a evaluar el código e incluir los resultados

echo TRUE Indica si se muestra el código además de los resultados

warning TRUE Indica si se muestran las advertencias, de existir, al procesar el código

error FALSE Indica si se muestran los mensajes de error, de existir, al procesar el código

message TRUE Indica si se muestran los comentarios generados por el programa al procesar el código

comment ‘##’ Carácter que se empleará para realizar comentarios sobre el código

Fuente: extraído de la ayuda rápida disponible en el tutorial web de R-Markdown (https://www.rstudio.com/wp-

content/uploads/2015/02/rmarkdown-cheatsheet.pdf)

Existen un sinfín de librerías para el diseño de objetos, cuyo código se puede incorporar

en documentos elaborados con Markdown. En las imágenes 3.3 y 3.4 se muestran dos

ejemplos. En el primero aparecen una tabla y un gráfico realizados con los paquetes R-Knitr (y

su extensión R-kableExtra) y R-Plotly, respectivamente; en el segundo, un mapa creado con la

librería R-Leaflet. En los tres objetos (tabla, gráfico y mapa), los datos introducidos proceden de

la web del IGE, que permite la descarga de información en formato .csv, .json y .json-stat14

. En

estos ejemplos se ha utilizado el primero de estos formatos (.csv) y se han descargado las

tablas completas, con todos los años disponibles; posteriormente, recurriendo a los parámetros

introducidos al comienzo del informe, se han filtrado los datos, seleccionando únicamente los

referidos al período a visualizar en el informe. ¿Por qué descargar toda la información

disponible y no sólo la referida al año en estudio? Porque ello nos va a permitir, cuando se

añada un nuevo período en la tabla de la web del IGE, actualizar los objetos simplemente

cambiando el valor definido para el parámetro.

14

Más información en MARTÍN VILA, María; LÓPEZ VIZCAÍNO, Esther; CALVO OCAMPO, Esther (2014), págs. 12-16. A la zona de descarga de información de la web del IGE se accede desde https://www.ige.eu/web/mostrar_paxina.jsp?paxina=004015&idioma=gl

Page 19: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

19

Imagen 3.3. Fragmento del resumen de resultados elaborado para la operación Encuesta estructural a hogares. Cuidado de menores y conciliación familiar y

código empleado en su elaboración

Resultado Código

**Nenos e nenas na etapa de 1º ciclo de educación infantil que son coidados unicamente polos seus pais. Galicia. Ano `` `r params$ano` ``** *Unidade: persoas, %* ```{r results="asis",echo=FALSE,message=FALSE,warning=FALSE} library(reshape2) library(knitr) library(kableExtra) ht5995 <- read.csv("https://www.ige.eu/igebdt/igeapi/csv/datos/5995") names(ht5995) <- c("Variable","Medidas","CodTempo","Tempo","CodEspazo","Espazo",

"DatoN","DatoT") ht5995$Variable_ord <- ifelse(ht5995$Variable=="Total",0,2) ht5995$Variable_ord <- ifelse(ht5995$Variable=="Asisten a centros de 1º ciclo de educación

infantil",1,ht5995$Variable_ord) tabla1 <- subset(ht5995,ht5995$CodTempo==params$ano & ht5995$Medidas=="Número",

select=c("Variable_ord","Variable","Medidas","DatoN")) tabla1 <- dcast(tabla1,Variable_ord+Variable~Medidas) kable(tabla1[,-1],"html",align=c('l','r'),escape = FALSE) %>% kable_styling("striped",full_width = FALSE) ``` ```{r results="asis",echo=FALSE,message=FALSE,warning=FALSE} library(plotly) names(tabla1) <- c("Variable_ord","Variable","Numero") tabla1 <- subset(tabla1, tabla1 $Variable_ord!=0) grafico1 <- plot_ly(tabla1,labels=~Variable,values=~Numero,type="pie", textinfo = 'percent', insidetextfont = list(color='#E5E5E5'), marker=list(colors=c("#26686D","C6A00C"), line=list(color='#FFFFFF',width=1)), sort=FALSE) %>% layout(width=400,height=300,margin= list(l=25,r=25,t=100,b=50,pad=4), xaxis=list(showgrid=FALSE,zeroline=FALSE,showticklabels=FALSE), yaxis=list(showgrid=FALSE,zeroline=FALSE,showticklabels=FALSE), showlegend=TRUE,legend=list(orientation = 'v',x=0.1,y=1.4)) grafico1 ``` *Fonte: IGE. Enquisa estrutural a fogares. Coidado de menores e conciliación familiar [(descarga da táboa)](http://www.ige.eu/igebdt/esqv.jsp?ruta=verPpalesResultados.jsp?OP=1&B=1&M=&COD=5995&R=0[all]&C=T[1:0];1[1]&F=&S=998:12&SCF=)*

Fuente: imagen extraída de la versión web del informe

(https://www.ige.eu/estatico/html/gl/ecv/PDF/Resumo_resultados_EEF_Coidado_menores_2017.pdf)

Page 20: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

20

Imagen 3.4. Fragmento del resumen de resultados elaborado para la operación Carga de población estacional de los municipios de Galicia y código

empleado en su elaboración

Resultado Código

**Primeiro trimestre** ```{r results="asis",echo=FALSE,message=FALSE,warning=FALSE} library(dplyr) library(reshape2) library(leaflet) ht9043 <- read.csv("http://www.ige.eu/igebdt/igeapi/csv/datos/9043/T[all:t],1:4:5") ###Objeto almacenado en una carpeta de trabajo con la capa base del mapa de Galicia dividida en

municipios y transformaciones necesarias para modificar las coordenadas de cada espacio a la proyección utm-29

concellos=readShapeSpatial("D:/Mis documentos/Servizo de Difusión/Comunicados html/RMarkdown/www/Concellos_314_F_region.shp",proj4string=CRS("+proj=utm +zone=29"))

concellos <- spTransform(concellos,CRS("+init=epsg:4326")) sd_pob <- subset(ht9043,as.numeric(substring(ht9043$CodTempo,1,4))==params$ano &

as.numeric(substring(ht9043$CodTempo,5))==13 & ht9043$CodEspazo>15000 & ht9043$Medida=="Saldo poboacional",select=c("CodEspazo","Espazo","DatoN"))

sd_pob <- merge(concellos, sd_pob, by.x="COD_MUN2",by.y="CodEspazo") bins <- c(-2500,-900,0,1000,3000,18100) cores_mapa <- c("#0051BA","#7FA8DC","#EEE2B6","#D7BC55","#C6A00C") pal <- colorBin(cores_mapa,domain=sd_pob$DatoN,bins=bins) labels <- paste(paste(sd_pob$Espazo,": ",sep=""),

paste(format(sd_pob$DatoN,big.mark=".",decimal.mark=",")," persoas",sep=""),sep="\n") mapa1 <- leaflet(width=450) %>% addTiles() %>% addProviderTiles(providers$OpenStreetMap) %>% setView(lng=-8.05,lat=42.8,zoom=7) %>% addPolygons(data=sd_pob,fillColor=~pal(sd_pob$DatoN),stroke = TRUE,

weight=1,color="blue",dashArray="",fillOpacity = 0.7, highlight=highlightOptions(weight=5, color="#666",dashArray="",fillOpacity=0.7, bringToFront=TRUE), label=labels, labelOptions=labelOptions(style=list("font-weight"="normal",padding="3px 8px"), textsize="15px",direction="auto")) %>%

addLegend(pal=pal,values=sd_pob$Trim1,opacity = 1, labFormat = labelFormat(big.mark=".",prefix="(",between=",",suffix="]"))

mapa1 ```

Fuente: imagen extraída de la versión web del informe

(http://www.ige.eu/estatico/estatRM.jsp?c=0201001008&ruta=html/gl/OperacionsEstruturais/Resumo_resultados_Carga_poboacion.html)

Page 21: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

21

Finalmente, una vez redactado, hay que proceder a generar el informe. Si se trabaja con

RStudio, la generación se lleva a cabo presionando la tecla Knitr (que aparece en la barra de

tareas del recuadro de inserción de código) y seleccionando el formato de salida (Knit to HTML,

Knit to PDF, Knit to Word). Cuando se presiona este botón, R-Markdown procesa todo lo que

figura en el archivo .Rmd, ejecutando los trozos de código incrustados en el documento e

introduciendo los resultados en el mismo; cuando finaliza la etapa de procesamiento, genera

una vista previa del informe en el formato solicitado (html, pdf o word) y, al mismo tiempo,

guarda una copia del archivo en la carpeta de trabajo.

4. El programa de visitas escolares al IGE

En los capítulos anteriores hemos centrado nuestra atención en el desarrollo de

herramientas que faciliten la labor de transmitir la estadística a través de las páginas web.

Hemos hecho hincapié en que el mensaje debe adecuarse al oyente al que va dirigido, en

especial cuando se trata del público más joven: si logramos que el usuario se familiarice con

nuestra disciplina desde pequeño, que entienda lo que hay detrás de los datos, a manejarlos e

interpretarlos correctamente, la estadística pública dejará de ser esa rama oscura de las

matemáticas que nadie entiende y a quien a nadie atrae.

Sin afán de convertirnos ni en educadores ni en docentes, en el IGE creamos hace años

un portal educativo dirigido a estudiantes de secundaria y de bachillerato. Esta herramienta

nació con el objetivo de servir de apoyo al profesorado en sus explicaciones, poniendo a su

disposición una serie de unidades didácticas que versan sobre aspectos de la estadística

matemática y descriptiva, la economía y la geografía. Al mismo tiempo, se buscaba acercar al

público joven a la realidad socioeconómica de Galicia y las distintas unidades territoriales que

la componen (comarcas, municipios, grandes ciudades); con este fin, se dotó a las unidades

didácticas de un buen número de ejemplos prácticos, en los que se utilizan datos reales

tomados de la web del IGE. Poco a poco el portal educativo fue creciendo en contenidos, y hoy

día cuenta con distintos apartados que completan la información aportada por las unidades

didácticas, así como un bloque de carácter lúdico con puzles, juegos, chistes, acertijos, etc.,

diseñados para que los estudiantes se diviertan con la estadística.

Para dar a conocer el portal educativo entre el profesorado y el alumnado gallego, el IGE

puso en marcha hace unos diez años un programa de visitas escolares, en el que se invita al

colectivo docente a conocer nuestras instalaciones, a nuestro personal y nuestra labor. El

pasado curso académico doce centros de secundaria de toda Galicia y el alumnado de la

Facultad de Ciencias de la Educación de Santiago (el programa se ha ampliado para acoger

también al ámbito universitario) visitaron la sede del IGE; en total, han sido unos 331 alumnos

los que se han acercado a conocer nuestro trabajo entre septiembre de 2017 y junio de 2018.

Esta cifra es un poco inferior a la alcanzada en el curso 2016-2017 pero, como se aprecia en la

tabla 4.1, está muy por encima del valor con el que cerramos el curso 2013-2014 (fecha en la

que se comenzó a guardar registro de estas visitas).

Page 22: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

22

Tabla 4.1. Estadística de centros y alumnos acogidos al Programa de visitas escolares al IGE

CURSO ACADÉMICO NÚMERO DE CENTROS NÚMERO DE ALUMNADO

2013-2014 7 197

2014-2015 11 279

2015-2016 7 181

2016-2017 13 363

2017-2018 13 331

Fuente: extraído del registro interno del IGE

La visita dura unas dos horas; comienza con una presentación sobre la articulación de la

estadística pública en Europa y el papel que juega el IGE en este entramado, a cargo del

personal de dirección. A continuación las compañeras del Servicio de Difusión e Información

muestran los contenidos del portal educativo; en esta parte de la visita, los estudiantes tienen a

su disposición ordenadores para que puedan seguir en primera persona el recorrido que la

ponente va trazando por los diferentes contenidos del portal. De esta forma, el alumnado siente

que forma parte de la explicación, que no actúa como un mero ollente y conseguimos captar su

atención. Solemos comenzar este bloque de la visita retándolos a que respondan a las diez

preguntas del test desarrollado con R-Shiny del que se habló en el apartado 2 de la ponencia:

“Canto sabes do teu concello?”. A continuación les explicamos en qué consisten las unidades

didácticas, para qué sirven y cómo se estructuran. Y, para cerrar con “buen sabor de boca”,

finalizamos este bloque de la visita divirtiéndonos con uno de los juegos del apartado de

estadística recreativa del portal.

Cuando termina la labor del Servicio de Difusión e Información, es turno de que los

compañeros informáticos les enseñen las “tripas” del Instituto; esto es, la sala de máquinas

donde se encuentran los servidores sin los cuales no sería posible almacenar toda la

información estadística que provee y difunde el IGE. Finalmente, la visita concluye con una

parada en la sala de encuestación; aquí, el personal de Trabajos de Campo les explican cómo

obtenemos los servicios estadísticos buena parte de los datos que necesitamos para realizar

nuestra labor, por medio de encuestas, haciendo hincapié en cuán importante es la

colaboración ciudadana en esta labor. Y como la práctica es la mejor forma de interiorizar un

conocimiento, se les propone un juego en el que uno de los estudiantes actúa como

entrevistador y otro como encuestado.

Aunque quizá sea pronto para saber si se está logrando el fin con el que nació el

programa de visitas, la experiencia de estos diez años es halagüeña. Prueba de ello es que el

número de visitas va en aumento y muchos centros repiten de un curso para otro. Algunos,

ante la incapacidad de poder acercarse a las instalaciones del IGE, nos han pedido que

seamos nosotros quienes vayamos a visitarlos; y así lo hemos hecho en un par de ocasiones el

curso pasado. La experiencia ha sido enriquecedora para el alumnado y el profesorado, pero

también para el personal del IGE. Nos está sirviendo para conocer qué demanda la juventud de

Page 23: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

23

nosotros, cómo desea que nos comuniquemos con ellos, para validar el funcionamiento de

nuestra página web y las nuevas aplicaciones y funcionalidades que le hemos ido incorporando

con los años; y también para darnos cuenta de las carencias con las que aún contamos.

5. Conclusiones.

A lo largo de la ponencia se ha puesto de manifiesto la necesidad de adaptar los

contenidos de la web del IGE a los distintos tipos de usuarios que la consultan, así como los

formatos de difusión. Se definen tres tipos de usuarios: especializados (con facilidades a la

hora de interpretar datos estadísticos y habilidades en la navegación por las webs de esta

índole), no especializados (con un conocimiento general de nuestra rama de estudio y no

duchos en el tratamiento de datos) y el público joven. Se han presentado dos formatos de

difusión web adaptados a las necesidades de cada grupo: las aplicaciones web y los informes

de resultados.

En ambos casos se ha recurrido al software de código abierto R en su elaboración; en

particular, a la librería Shiny, que permite crear aplicaciones web dinámicas, y al paquete

Markdown, que facilita la elaboración e implementación de informes en múltiples formatos. Los

motivos por los que nos hemos decantado por este programa para personalizar los formatos de

publicación web han sido varios:

Permite diseñar productos de difusión interactivos sin necesidad de un gran bagaje en

los lenguajes de programación web HTML, CSS o Javascript

Los productos elaborados con este programa pueden conectarse con las bases de

datos que almacenan la información difundida en la web, de forma que capturen

directamente y en tiempo real los datos almacenados a petición del usuario

Los contenidos de las aplicaciones e informes web (tales como tablas, gráficos e

incluso texto) pueden programarse para que muestren la información más actual de

una estadística, sin requerir la actualización manual por parte del estadístico

Posibilita la descarga de información en formatos que permiten su almacenaje e

impresión (como pdf y word)

Es gratuito y se nutre de las aportaciones de los usuarios, por lo que se trata de un

programa vivo en continuo proceso de desarrollo y mejora

Con este programa hemos creado las aplicaciones web y los informes que utilizamos en la

ponencia para ejemplificar el funcionamiento de Shiny y Markdown.

Además de la difusión web, en el IGE hemos desarrollado una nueva forma de acercar la

estadística a la ciudadanía de Galicia, orientada en este caso al público joven: el programa de

visitas escolares. La experiencia nos está sirviendo para conocer qué demanda la juventud de

nosotros, contrastar in situ el funcionamiento de las aplicaciones e informes web mencionados

en el párrafo anterior y darnos cuenta de las carencias con las que aún contamos en el IGE.

Page 24: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

24

BIBLIOGRAFÍA

MARTÍN VILA, María; LÓPEZ VIZCAÍNO, Esther; CALVO OCAMPO, Esther (2014),

“Adecuación de la difusión en la web del IGE a las necesidades del usuario final”, ponencia

presentada en las XVIII Jornadas de Estadística de las Comunidades Autónomas, Oviedo,

2014; en red en

http://www.jecas.es/2014_Asturias/ponencias/D1.pdf

VEIGUELA FERNÁNDEZ, Noa (2016), “R-Shiny: una herramienta para mejorar la

difusión de las operaciones del Sistema de Cuentas Económicas de Galicia”, ponencia

presentada en las XIX Jornadas de Estadística de las Comunidades Autónomas, Madrid, 2016;

en red en

http://www.jecas.es/2016_Madrid/ponencias/H2.pdf

EN RED:

COMISIÓN ECONÓMICA PARA EUROPA DE LAS NACIONES UNIDAS (UNECE)

(2009), “Cómo hacer comprensibles los datos. Parte 2: una guía para presentar estadísticas”,

en https://www.unece.org/index.php?id=17568&L=3

COMITÉ DEL SISTEMA ESTADÍSTICO EUROPEO (2017), “Código de buenas prácticas

de las estadística europeas”, en

https://ec.europa.eu/eurostat/documents/4031688/8971242/KS-02-18-142-EN-N.pdf/e7f85f07-

91db-4312-8118-f729c75878c7

Página web con toda la información del paquete R-Shiny, incluyendo un práctico tutorial

sobre su funcionamiento:

http://shiny.rstudio.com/

Página web sobre el funcionamiento del paquete R-Plotly:

https://plot.ly/r/

Página web sobre el funcionamiento del paquete R-Leaflet:

https://rstudio.github.io/leaflet/

Página web sobre el funcionamiento del paquete Markdown:

https://rmarkdown.rstudio.com/

Enlace a la aplicación de consulta del PIB municipal y comarcal desarrollada con R-

Shiny:

Page 25: VISUALIZACIÓN DE LA INFORMACIÓN ESTADÍSTICA UTILIZANDO … · europeas deben presentarse “de forma clara y comprensible” y difundirse “de forma adecuada y conveniente”2.

25

http://www.ige.eu/Shiny/PIB_muni/

Enlace al test interactivo sobre la realidad socioeconómica de los municipios de Galicia

Canto sabes do teu concello??? Desarrollada con R-Shiny:

http://www.ige.eu/Shiny/Test_personalizado_concellos/

Enlace al informe de resultados de la operación Encuesta estructural a hogares. Cuidado

de menores y conciliación familiar realizado con R-Markdown:

https://www.ige.eu/estatico/estatRM.jsp?c=0205019&ruta=html/gl/ecv/Resumo_resultados_EEF

_Coidado_menores.html

Enlace al informe de resultados de la operación Carga de población estacional de los

municipios de Galicia realizado con R-Markdown:

https://www.ige.eu/estatico/estatRM.jsp?c=0201001008&ruta=html/gl/OperacionsEstruturais/Re

sumo_resultados_Carga_poboacion.html

Acceso al Portal Educativo del IGE:

https://www.ige.eu/estatico/educacion/index.htm