14 de outubro de 2021
Automatización de procesos
Tratamento estatístico da información
Elaboración de informes automatizados
Elaboración de aplicacións web dinámicas
Ademais de información propia, empregamos información procedente de diversas fontes de información
Esta información pode ser mensual, trimestral, anual…
O que implica que cada mes, trimestre, ano… temos que facer o mesmo procedemento
Un exemplo: Información de contratos rexistrados (SEPE)
library(readxl)
url="http://www.sepe.es/SiteSepe/contenidos/que_es_el_sepe/estadisticas/
datos_avance/xls/contratos_prov/contratos_sexedadsec_Galicia.xls"
download.file(url,"R:/Servicios/Difusion/OPERACIÓNS ESTATISTICAS/_BANCO DE SERIES
CONXUNTURA/cargas boletín B/contratos.xls",mode="wb")
Identificación dos códigos do SEPE cos códigos da nosa base de datos
Grabación da información na base de datos de Mysql
series="('CIT','CICI','CTOT','CTT','CTT','CTF')"
actualizar_BSC(datos,series,actualizar)
Un exemplo: Información de contratos rexistrados (SEPE)
Moitos procesos
library(tidyverse)
library(readxl)
library(RODBC)
library(stringi)
library(RODBC)
library(openxlsx)
source("R:/Servicios/Difusion/programas/BSC/actualizar_BSC.R")
source("Consumo_gasolinas.R",encoding="UTF-8") ####CORES
source("Licitacion_oficial_fomento.R",encoding="UTF-8") ###MINISTERIO DE FOMENTO
source("Visados.R",encoding="UTF-8") ###MINISTERIO DE FOMENTO
source("Matriculacion_vehiculos.R",encoding="UTF-8") ###DGT
###CITROEN, HAI QUE DICIRLLE QUE MES E ANO QUERES LER
mes="Diciembre"
mes2=12
ano=2020
source("citroen.R",encoding="UTF-8") ###CITROEN
####MERCADO LABORAL
source("convenios.R",encoding="UTF-8") ###CONVENIOS
source("contratos.R",encoding="UTF-8") ##CONTRATOS
Base de datos sociodemográfica: contén información socioeconómica da poboación residente en Galicia
Base de datos sociodemográfica
Que empregamos para cruzar todos estes rexistros?
Librerías empregadas
cruce <- stringdist_left_join(padron,
afiliados,
by=c("nomb","ape1","ape2"),
max_dist=3,method="lv",distance_col="distance") %>%
select(clave.x,clave.y,cmun.x,cmun.y,nomb.distance,ape1.distance,ape2.distance)
cruce <- difference_left_join(padron,afiliados,
by=c("ANO","MES","DIA"),
max_dist=30,distance_col="distance") %>%
select(clave.x,clave.y,identity.x,identity.y,ANNO.distance,MES.distance,DIA.distance)
Xeorreferenciación: cruzar enderezos
text2vec
#Crea vocabulario
it = itoken(c(padron$vias,catastro$vias), progressbar = FALSE)
v = create_vocabulary(it)
v = prune_vocabulary(v, doc_proportion_max = 0.1, term_count_min = 5)
vectorizer = vocab_vectorizer(v)
doc_set_1 =padron
it1 = itoken(doc_set_1$vias, progressbar = FALSE)
doc_set_2 = catastro
it2 = itoken(doc_set_2$vias, progressbar = FALSE)
#Crea matrices DTM
dtm1 = create_dtm(it1, vectorizer)
dim(dtm1)
dtm2 = create_dtm(it2, vectorizer)
dim(dtm2)
#Calcula a matriz de similaridades utilizado a distancia de Jaccard
d1_d2_jac_sim = sim2(dtm1, dtm2,"jaccard", norm = "none")
Información xeorreferenciada: Poboación por cuadrículas de 1km2
Información xeorreferenciada: % poboación < 16 anos
Paquetes: leaflet,rgdal,maptools,sp,rgeos …
Información xeorreferenciada: Poboación por cuadrículas de 1km2
malla<-readOGR("R:/Servicios/Difusion/MAPAS/grid/mallas_IET/Malla1km.shp")
malla@data=left_join(malla@data,datos,by="CELLCODE")
malla <- spTransform(malla, CRS("+init=epsg:4326"))
bins <- c(-1,0, 20, 36, 1000, Inf)
pal <- colorBin("YlOrRd", domain = malla@data$pob, bins = bins)
labels <- paste0(malla@data$pob)
m=leaflet() %>% addTiles() %>% addProviderTiles(providers$OpenStreetMap) %>%
addPolygons(data = malla, fillColor = ~pal(malla@data$pob), stroke = TRUE, weight=2,
color = "transparent",dashArray="3", 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"))
m %>%addLegend(pal = pal,values = malla@data$pob,na.label="Sen pobación",
title = "Poboación",opacity = 1)
Como acometer a difusión de informes ou aplicacións web mensuais, trimestrais, anuais… sen ter que elaboralos manualmente de cada vez?
Ademais…
Como os elaboramos?
Plantilla para crear os informes
Función para incrustar táboas
caption = sprintf("Sociedades mercantís constituídas e que amplían capital. Galicia.%s",
mes_actual2);
headers = list(c("Dato do Mes", "Variación absoluta mensual",
"Variación absoluta interanual"));
names(t1)[1]=""
Make_Tables(t1,caption = caption,unidades = "Número",headers = headers)
top = ifelse(LX, 25, 0); p1_=t4[,c(1,3)] Make_Graphs_Pie(gr1, width = 375, height = 290 - top, margin = list(t = top))
Que é unha aplicación web dinámica?: unha aplicación que permite que o usuario poida non só recibir información a través da web, senón tamén interactuar con ela…
… Como? Por medio da introdución de widgets: elementos gráficos que permiten que o usuario se comunique co sistema de información que está “detrás” da web (sistema de entrada-saída (input-output))
No IGE recorremos a R, por qué?
– Permite deseñar produtos interactivos sen saber linguaxes de programación web
– Conéctase ás bases de datos internas, polo que capturan directamente e en tempo real a información
– Os contidos de informes e aplicacións poden programarse, non requiren actualización manual
– Permite a descarga e impresión da información
– É gratuíto e está en continuo desenvolvemento