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