Upload
dinhnhu
View
216
Download
0
Embed Size (px)
Citation preview
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Visualización de la información estadística
utilizando R-Shiny y R-Markdown
Noa Veiguela Fernández,
Esther López Vizcaíno,
Ana Andión Hermida
www.ige.eu
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Introducción
Tipos de usuarios:
• Usuario especializado: experiencia en el manejo de datos estadísticos y en la
navegación por webs de esta índole;
necesitan un formato de difusión abierto
consulta
multi-tabla
Necesidad de adaptar los contenidos
de las páginas web a los distintos
tipos de usuarios
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Introducción
Tipos de usuarios:
• Usuario especializado: experiencia en el manejo de datos estadísticos y en la
navegación por webs de esta índole;
necesitan un formato de difusión abierto
consulta
multi-tabla
Necesidad de adaptar los contenidos
de las páginas web a los distintos
tipos de usuarios
Proporcionan acceso
a la base de datos donde
se almacena la información
para que el usuarios se
construya su propia
tabla de resultados
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Introducción
Tipos de usuarios:
• Usuario especializado: experiencia en el manejo de datos estadísticos y en la
navegación por webs de esta índole;
necesitan un formato de difusión abierto
• Usuario no especializado: poco acostumbrado al manejo e interpretación de
datos estadísticos;
necesitan un formato de difusión cerrado
consulta
multi-tabla
informes de
resultados
Necesidad de adaptar los contenidos
de las páginas web a los distintos
tipos de usuarios
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Introducción
Tipos de usuarios:
• Usuario especializado: experiencia en el manejo de datos estadísticos y en la
navegación por webs de esta índole;
necesitan un formato de difusión abierto
• Usuario no especializado: poco acostumbrado al manejo e interpretación de
datos estadísticos;
necesitan un formato de difusión cerrado
consulta
multi-tabla
informes de
resultados
Necesidad de adaptar los contenidos
de las páginas web a los distintos
tipos de usuarios
Compendios de datos
tabulados, acompañados
de representaciones gráficas
y de notas explicativas
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Introducción
Tipos de usuarios:
• Usuario especializado: experiencia en el manejo de datos estadísticos y en la
navegación por webs de esta índole;
necesitan un formato de difusión abierto
• Usuario no especializado: poco acostumbrado al manejo e interpretación de
datos estadísticos;
necesitan un formato de difusión cerrado
• Público joven: adaptar el nivel de contenidos y formato de difusión a su edad;
vistosidad, interactividad, entorno lúdico
consulta
multi-tabla
informes de
resultados
Portal
educativo
Necesidad de adaptar los contenidos
de las páginas web a los distintos
tipos de usuarios
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Introducción
Tipos de usuarios:
• Usuario especializado: experiencia en el manejo de datos estadísticos y en la
navegación por webs de esta índole;
necesitan un formato de difusión abierto
• Usuario no especializado: poco acostumbrado al manejo e interpretación de
datos estadísticos;
necesitan un formato de difusión cerrado
• Público joven: adaptar el nivel de contenidos y formato de difusión a su edad;
vistosidad, interactividad, entorno lúdico
consulta
multi-tabla
informes de
resultados
Portal
educativo
aplicaciones web
dinámicas
descarga de la
información
Necesidad de adaptar los contenidos
de las páginas web a los distintos
tipos de usuarios
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Introducción
Tipos de usuarios:
• Usuario especializado: experiencia en el manejo de datos estadísticos y en la
navegación por webs de esta índole;
necesitan un formato de difusión abierto
• Usuario no especializado: poco acostumbrado al manejo e interpretación de
datos estadísticos;
necesitan un formato de difusión cerrado
• Público joven: adaptar el nivel de contenidos y formato de difusión a su edad;
vistosidad, interactividad, entorno lúdico
consulta
multi-tabla
informes de
resultados
Portal
educativo
aplicaciones web
dinámicas
descarga de la
información
Necesidad de adaptar los contenidos
de las páginas web a los distintos
tipos de usuarios
Permiten cierto grado de
autonomía al usuario;
presentan la info. en forma
de tablas, gráficos, con
texto
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Solución
¿Cómo acometer las distintas vías de difusión con el personal
estadístico de que disponemos, sin coste económico adicional?
Automatizando procesos y tareas que se repiten con frecuencia
Buscando programas de diseño web que no requieran conocer lenguajes de
programación (HTML, CSS o Javascript)
En el IGE recurrimos a R…
R-Shiny
Permite crear aplicaciones
web dinámicas
R-Markdown
Produce de forma simultánea
informes en html, pdf,word…
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Solución
En el IGE recurrimos a R…
Además…
Pueden conectarse con las BD que almacenan la información difundida, por lo
que capturan directamente y en tiempo real los datos
Todo lo que contienen (tablas, gráficos, texto) puede programarse para que
muestren la información más actual
R-Shiny
Permite crear aplicaciones
web dinámicas
R-Markdown
Produce de forma simultánea
informes en html, pdf,word…
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny: introducción
¿Qué es una aplicación web dinámica?: una aplicación que
permite que el usuario pueda no sólo recibir información a través de
la web, sino también 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 (sistemas de entrada-
salida (input-output))
Cajas que permiten la
introducción de texto
Listas de
elementos
Botones o iconos que
representan acciones
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny:
primeros pasos
Toda aplicación creada con R-Shiny debe constar de…
Archivo de texto ui.R: contiene el código que permite la visualización de
widgets y otros elementos; controla el aspecto y diseño de la aplicación
Archivo de texto server.R: contiene las instrucciones que necesita el servidor
para construir los objetos: tablas, gráficos, mapas, diagramas, etc.
Carpeta www: sitio dónde alojar físicamente los archivos que necesitan la
aplicación: imágenes, bases de datos, etc.
Existen 4 bloques principales de comandos o funciones en R-Shiny:
Funciones para crear los widgets
Sentencias de creación de objetos web
Sentencias de introducción de objetos web
Funciones que definen la interfaz gráfica de usuario
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny:
primeros pasos
Funciones para crear los widgets, esto es, el elemento gráfico
mediante el cual el usuario se comunica con la aplicación web:
textInput()
radioButtons()
actionButton()
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny:
primeros pasos
Sentencias de creación de objetos web: determinan el tipo de objeto que
devolverá el servidor.
Sentencias de introducción de objetos web: una vez creado el objeto,
estas funciones permiten que se visualice en la web.
cada tipo de sentencia de creación se
asocia con un comando concreto de
introducción
Comando de creación Comando de introducción Objeto web
renderImage({}) imageOutput() Imagen
renderPlot({}) plotOutput() Gráfico básico de R
renderTable({}) tableOutput() Tabla estática
renderDataTable({}) dataTableOutput() Tabla dinámica
renderText({}) textOutput() Texto
renderUI({}) uiOutput() Elementos creados a partir de código HTML
Etc.
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny: ejemplo básico
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny: ejemplo básico
Input
Output
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny:
ejemplos avanzados
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny:
ejemplos avanzados
Input
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny:
ejemplos avanzados
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny:
ejemplos avanzados
output$GRAFICO4_1 <- renderPlotly({
Pregunta4 <- read.csv("http://www.ige.eu/igebdt/igeapi/csv/datos/5230/T[1:0]",header=TRUE)
tb1 <- subset(Pregunta4,Pregunta4$CodEspazo==BDInput0())
[… continúa el código]
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)) })
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny:
ejemplos avanzados
output$GRAFICO4_1 <- renderPlotly({
Pregunta4 <- read.csv("http://www.ige.eu/igebdt/igeapi/csv/datos/5230/T[1:0]",header=TRUE)
tb1 <- subset(Pregunta4,Pregunta4$CodEspazo==BDInput0())
[… continúa el código]
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)) })
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny:
ejemplos avanzados
output$GRAFICO4_1 <- renderPlotly({
Pregunta4 <- read.csv("http://www.ige.eu/igebdt/igeapi/csv/datos/5230/T[1:0]",header=TRUE)
tb1 <- subset(Pregunta4,Pregunta4$CodEspazo==BDInput0())
[… continúa el código]
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)) })
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny:
ejemplos avanzados
output$GRAFICO4_1 <- renderPlotly({
Pregunta4 <- read.csv("http://www.ige.eu/igebdt/igeapi/csv/datos/5230/T[1:0]",header=TRUE)
tb1 <- subset(Pregunta4,Pregunta4$CodEspazo==BDInput0())
[… continúa el código]
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)) })
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny:
ejemplos avanzados
output$GRAFICO4_1 <- renderPlotly({
Pregunta4 <- read.csv("http://www.ige.eu/igebdt/igeapi/csv/datos/5230/T[1:0]",header=TRUE)
tb1 <- subset(Pregunta4,Pregunta4$CodEspazo==BDInput0())
[… continúa el código]
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)) })
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Aplicaciones web con R-Shiny:
ejemplos avanzados
output$GRAFICO4_1 <- renderPlotly({
Pregunta4 <- read.csv("http://www.ige.eu/igebdt/igeapi/csv/datos/5230/T[1:0]",header=TRUE)
tb1 <- subset(Pregunta4,Pregunta4$CodEspazo==BDInput0())
[… continúa el código]
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)) })
Output
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Automatización de informes con R-Markdown:
introducción
Informes web vs. informes pdf:
Web Pdf
Se nutren directamente de la BD que almacena
la información difundida: siempre están
actualizados
Se pueden descargar, guardar e imprimir
Tablas y gráficos programados para que
muestren el último dato disponible; sólo hay
que cambiar el texto
R-Markdown
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Automatización de informes con R-Markdown:
guía de uso
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Automatización de informes con R-Markdown:
guía de uso
---
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
---
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Automatización de informes con R-Markdown:
guía de uso
---
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
---
#### Asistencia a centros de educación infantil de 1º ciclo
En Galicia, no ano `` `r params$ano` ``, había 32.311 nenos [... continúa el
código]
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Automatización de informes con R-Markdown:
guía de uso
```{r results="asis",echo=FALSE,message=FALSE,warning=FALSE}
ht5995 <- read.csv("https://www.ige.eu/igebdt/igeapi/csv/datos/5995")
[... continúa el código]
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)
```
---
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
---
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
El programa de visitas escolares al IGE
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
El 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
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
El 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
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Conclusiones
Necesidad de adaptar los contenidos y formatos de difusión al
tipo de usuario que consulta la web
En el IGE recurrimos a R, ¿por qué?
Permite diseñar productos interactivos sin saber lenguajes de programación web
Se conecta a las bases de datos internas, por lo que capturan directamente y en
tiempo real la información
Los contenidos de informes y aplicaciones pueden programarse, no requieren
actualización manual
Permite la descarga e impresión de la información
Es gratuito y está en continuo desarrollo
XX Jornadas de Estadística de las Comunidades Autónomas. La Rioja, 4-5 de octubre de 2018
Gracias por su atención
www.ige.eu