Nothing
#' Censo Nacional de Gobiernos Municipales y Delegacionales
#'
#' Descarga los datos del Censo Nacional de Gobiernos Municipales y Delegacionales (CNGMD),
#'
#' El CNGMD es un proyecto estadistico sobre la gestion y desempeño de las entidades gubernamentales mexicanas a nivel municipal. El CNGMD cubre cuatro tematicas: ayuntamiento, administracion publica municipal, seguridad y justicia.
#'
#' @param fuente Fuente de datos de las instituciones publicas de municipales y delegacionales en formato alfanumerico. Las opciones son: ayuntamiento, administracion, seguridad, justicia.
#' @param year Año del levantamiento del censo en formato numerico. Los años disponibles son 2011, 2013, 2015 y 2017.
#' @param datos Base de datos producida por cada fuente de datos en formato alfanumerico. Las opciones pueden ser, segun la fuente de datos: comision, estructura, integrantes, actividades, funciones, marco, participacion, recursos, tramites, transparencia, ejercicio, infraestructura, y recursos.
#'
#' @examples
#'
#' # Consulta los metadatos del Censo Nacional de Gobiernos Municipales y Delegacionales
#' \dontrun{censo_municipal()}
#'
#' # Descarga los microdatos de la estructura de los ayuntamientos en 2011
#' \dontrun{estruct <- censo_municipal(year = 2011, fuente = "ayuntamiento", datos = "estructura")}
#' @return Data.frame
#' @export
# ====================================================================================================
censo_municipal = function(year = NA, fuente = NA, datos = NA){
# Open Metadata
if (is.na(fuente) & is.na(year) & is.na(datos)) {
shell.exec("https://www.inegi.org.mx/programas/cngmd/2011/")
message("\n Cargando pagina... \n")
# Halt the function without error message
opt <- options(show.error.messages=FALSE)
on.exit(options(opt))
stop()
}
else if (fuente != "ayuntamiento" & fuente != "administracion"
& fuente != "seguridad" & fuente != "justicia") {stop(message("Fuente de datos no reconocida"))}
else if (datos != "comision" & datos != "estructura" & datos != "funciones" & datos != "marco" & datos != "participacion" &
datos != "recursos" & datos != "tramites" & datos != "transparencia" & datos != "ejercicio" &
datos != "infraestructura" & datos != "recursos" & datos !="integrantes" & datos!="actividades") {stop(message("Nombre de datos no reconocido"))}
else {}
# Renombrar carpetas y URL ---------------------------------------------------------------------------
## URL
if (year == 2011) {
url.datos.comis = "ayu_comisiones_cngmd"
url.datos.estru = "ayu_estructura_cngmd"
url.datos.apest = "apmd_estructura_cngmd"
url.datos.apfun = "apmd_funciones_cngmd"
url.datos.apmar = "apmd_marco_cngmd"
url.datos.appar = "apmd_participacion_cngmd"
url.datos.aprec = "apmd_recursos_cngmd"
url.datos.aptra = "apmd_tramites_cngmd"
url.datos.aptrn = "apmd_transparencia_cngmd"
url.datos.speje = "sp_ejercicio_cngmd"
url.datos.spinf = "sp_infraestructura_cngmd"
url.datos.sprec = "sp_recursos_cngmd"
url.datos.jmeje = "jm_ejercicio_cngmd"
url.datos.jminf = "jm_infraestructura_cngmd"
url.datos.jmrec = "jm_recursos_cngmd"
folder.comis = "/Comisiones e iniciativas de los Ayuntamientos/Base de datos/"
folder.estru = "/Estructura de los Ayuntamientos/Base de datos/"
folder.apest = "/Estructura organizacional/Base de datos/"
folder.apfun = "/Funciones Especificas/Base de datos/"
folder.apmar = "/Marco Regulatorio/Base de datos/"
folder.appar = "/Participacion Ciudadana/Base de datos/"
folder.aprec = "/Recursos de las Administraciones Publicas Municipales/Base de datos/"
folder.aptra = "/Tramites y Servicios y Gobierno Electronico/Base de datos/"
folder.aptrn = "/Transparencia y Anticorrupcion/Base de datos/"
folder.speje = "/Ejercicio de la Funcion/Base de datos/"
folder.spinf = "/Infraestructura/Base de datos/"
folder.sprec = "/Recursos Humanos/Base de datos/"
folder.jmeje = "/Ejercicio de la Funcion/Base de datos/"
folder.jminf = "/Infraestructura/Base de datos/"
folder.jmrec = "/Recursos Humanos/Base de datos/"
}
else if (year == 2013) {
url.datos.comis = "Com_ini_aytto_cngmd"
url.datos.estru = "Estruct_aytto_cngmd"
url.datos.apest = "estructura_organizacional_cngmd"
url.datos.apfun = "func_esp_cngmd"
url.datos.apmar = "marco_regulatorio_cngmd"
url.datos.appar = "participacion_ciudadana_cngmd"
url.datos.aprec = "recursos_cngmd"
url.datos.aptra = "tys_gob_elec_cngmd"
url.datos.aptrn = "transp_cont_int_anticor_cngmd"
url.datos.speje = "SP_Ejercicio_funcion_cngmd"
url.datos.spinf = "SP_Infraestructura_cngmd"
url.datos.sprec = "SP_Recursos_cngmd"
url.datos.jmeje = "JM_Ejercicio_funcion_cngmd"
url.datos.jminf = "JM_Infraestructura_cngmd"
url.datos.jmrec = "JM_Recursos_cngmd"
folder.comis = "/Com_ini_aytto/Bases_de_datos/"
folder.estru = "/Estruct_aytto/Bases_de_datos/"
folder.apest = "/Estructura_organizacional/Bases_de_datos/"
folder.apfun = "/Func_esp/Bases_de_datos/"
folder.apmar = "/Marco_regulatorio/Bases_de_datos/"
folder.appar = "/Participacion_ciudadana/Bases_de_datos/"
folder.aprec = "/Recursos/Bases_de_datos/"
folder.aptra = "/TyS_gob_elec/Bases_de_datos/"
folder.aptrn = "/Transp_cont_int_anticor/Bases_de_datos/"
folder.speje = "/SP_Ejercicio_funcion/Bases_de_datos/"
folder.spinf = "/SP_Infraestructura/Bases_de_datos/"
folder.sprec = "/SP_Recursos/Bases_de_datos/"
folder.jmeje = "/JM_Ejercicio_funcion/Bases_de_datos/"
folder.jminf = "/JM_Infraestructura/Bases_de_datos/"
folder.jmrec = "/JM_Recursos/Bases_de_datos/"
}
else if (year == 2015) {
url.datos.comis = "m1/Com_ini_aytto_cngmd"
url.datos.estru = "m1/Estruct_aytto_cngmd"
url.datos.apest = "m2/Estructura_organizacional_cngmd"
url.datos.apfun = ""
url.datos.apmar = "m2/Marco_regulatorio_cngmd"
url.datos.appar = "m2/Participacion_cuidadana_cngmd"
url.datos.aprec = "m2/Recursos_cngmd"
url.datos.aptra = "m2/Tramites_serv_cngmd"
url.datos.aptrn = "m2/Transparencia_cngmd"
url.datos.speje = "m3/SP_Ejercicio_funcion_cngmd"
url.datos.spinf = "m3/sp_Seguridad_publica_cngmd"
url.datos.sprec = "m3/sp_Recursos_cngmd"
url.datos.jmeje = "m4/JM_Ejercicio_funcion_cngmd"
url.datos.jminf = "m4/JM_Infraestuctura_cngmd"
url.datos.jmrec = "m4/JM_Recursos_cngmd"
# Nuevas secciones (a partir de 2015)
# Administracion Publica Municipal
#"m2/Gob_elec_cngmd"
#"m2/Plan_evalua_cngmd"
#"m2/Act_estadis_geograficas_cngmd"
#"m2/Proteccion_civil_cngmd"
#"m2/Serv_publicos_cngmd"
#"m2/Ctrl_inter_anticor_cngmd"
# CATASTRO
#"m2/Estructura_organizacional_catastro_cngmd"
#"m2/Capacitacion_catastro_cngmd"
#"m2/Programa_modernizacion_catastral_cngmd"
#"m2/Tecnologias_informacion_catastral_cngmd"
#"m2/Resguardo_informacion_catastral_cngmd"
#"m2/Procesos_catastrales_cngmd"
#"m2/Padron_catastral_cngmd"
#"m2/Cartografia_catastral_cngmd"
#"m2/Inspecciones_de_campo_cngmd"
#"m2/Impuesto_predial_cngmd"
#"m2/Valuacion_catastral_cngmd"
#"m2/Vinculacion_catastral_cngmd"
# AGUA POTABLE Y SANEAMIENTO
#"m5/Serv_agua_red_cngmd"
#"m5/Capta_agua_public_cngmd"
#"m5/Admin_agua_red_cngmd"
#"m5/Drenaje_alcant_cngmd"
#"m5/Trat_aguas_resid_cngmd"
#"m5/Aguas_sintrat_cngmd"
#"m5/Prog_gest_aguapot_cngmd"
#"m5/Aguas_sintrat_cngmd"
#"m5/Prog_gest_aguapot_cngmd"
#"m5/Difus_gest_agua_cngmd"
# RESIDUOS SOLIDOS Y URBANOS
#"m6/Rec_RSU_cngmd"
#"m6/Trat_RSU_cngmd"
#"m6/Disp_final_RSU_cngmd"
#"m6/Est_gen_comp_RSU_cngmd"
#"m6/Prog_gest_int_RSU_cngmd"
#"m6/Part_ciud_RSU_cngmd"
folder.comis = paste0("/Com_ini_aytto_cngmd", year, "_dbf/Bases_de_datos/")
folder.estru = paste0("/Estruct_aytto_cngmd", year, "_dbf/Bases_de_datos/")
folder.apest = "//Bases_de_datos/"
folder.apfun = "//Bases_de_datos/"
folder.apmar = "//Bases_de_datos/"
folder.appar = "//Bases_de_datos/"
folder.aprec = "//Bases_de_datos/"
folder.aptra = "//Bases_de_datos/"
folder.aptrn = "//Bases_de_datos/"
folder.speje = "//Bases_de_datos/"
folder.spinf = "//Bases_de_datos/"
folder.sprec = "//Bases_de_datos/"
folder.jmeje = "//Bases_de_datos/"
folder.jminf = "//Bases_de_datos/"
folder.jmrec = "//Bases_de_datos/"
}
else if (year == 2017) {
url.datos.integ = "m1/Integrantes_ayuntami_cngmd"
url.datos.activ = "m1/Actividad_ayuntami_cngmd"
url.datos.apest = "m2/Estruc_organizacional_cngmd"
url.datos.apfun = ""
url.datos.apmar = "m2/Marco_regulatorio_cngmd"
url.datos.appar = "m2/Participacion_ciudada_cngmd"
url.datos.aprec = ""
url.datos.aptra = "m2/Tramites_servicios_cngmd"
url.datos.aptrn = "m2/Transparencia_cngmd"
url.datos.speje = "m3/Ejercicio_func_espec_cngmd"
url.datos.spinf = "m3/Infraestructura_SP_cngmd"
url.datos.sprec = "m3/Recursos_SP_cngmd"
url.datos.jmeje = "m4/Ejercicio_funcion_cngmd"
url.datos.jminf = "m4/Infraestructura_cngmd"
url.datos.jmrec = "m4/Recursos_humanos_cngmd"
# Nuevas Bases de Datos 2017
# ADMINISTRACION PUBLICA ----------------------------------
# m2/Rec_presupuestal_cngmd
# m2/Rec_materiales_cngmd
# m2/Gobierno_electronico_cngmd
# m2/Activ_estadist_geogra_cngmd
# m2/Planea_evaluacion_cngmd
# m2/Proteccion_civil_cngmd
# m2/Recpresu_trans_accpro_cngmd
# m2/Solic_acceso_protecc_cngmd
# m2/Capac_trans_accprot_cngmd
# m2/Admon_archivo_gestion_cngmd
# m2/Capac_admon_gestion_cngmd
# m2/Rec_admon_gestiondoc_cngmd
# m2/Recpres_admon_gestion_cngmd
# m2/Planea_admon_gestion_cngmd
# m2/Sist_instituc_archivo_cngmd
# m2/Documento_electronico_cngmd
# m2/Sist_gestion_control_cngmd
# m2/Servicios_publicos_cngmd
# m2/Ctrl_inter_anticor_cngmd
# CATASTRO ------------------------------------------------
# m2/Estruc_organ_catastro_cngmd
# m2/Capacitacion_catastro_cngmd
# m2/Prog_moderni_catastral_cngmd
# m2/Tecno_infor_catastral_cngmd
# m2/Resguar_inf_catastral_cngmd
# m2/Procesos_catastrales_cngmd
# m2/Padron_catastral_cngmd
# m2/Cartografia_catastral_cngmd
# m2/Inspecciones_campo_cngmd
# m2/Impuesto_predial_cngmd
# m2/Valuacion_catastral_cngmd
# m2/Vinculacion_catastral_cngmd
# PLANEACION Y GESTION TERRITORIAL -----------------------
# m2/Admin_pub_territorio_cngmd
# m2/Marco_regulatorio_ter_cngmd
# m2/Reserv_territoriales_cngmd
# m2/Asent_human_irregu_cngmd
# m2/Asen_hum_zona_riesg_cngmd
# m2/Desarr_urbano_ecc_cngmd
# m2/Coordininst_intercinf_cngmd
# SEGURIDAD PUBLICA --------------------------------------
# m3/Infoestadistica_SP_cngmd
# m3/Interven_policiamun_cngmd
# m3/Presunta_infracdelito_cngmd
# m3/Probable_victima_reg_cngmd
# m3/Probable_infractor_cngmd
# m3/Mando_unico_policial_cngmd
# M7 - AGUA POTABLE Y SANEAMIENTO -----------------------------
# m5/Serv_agua_red_cngmd
# m5/Capta_agua_public_cngmd
# m5/Plantas_pot_cngmd
# m5/Admin_agua_red_cngmd
# m5/Drenaje_alcant_cngmd
# m5/Trat_aguas_resid_cngmd
# m5/Aguas_sintrat_cngmd
# m5/Prog_gest_aguapot_cngmd
# m5/Difus_gest_agua_cngmd
# M8 - RESIDUOS SOLIDOS URBANOS -------------------------------
# m6/Rec_RSU_cngmd
# m6/Trat_RSU_cngmd
# m6/Disp_final_RSU_cngmd
# m6/Est_gen_comp_RSU_cngmd
# Est_gen_comp_RSU_cngmd
# m6/Prog_gest_int_RSU_cngmd
# m6/Part_ciud_RSU_cngmd
folder.integ = "//Bases_Datos/"
folder.activ = "//Bases_Datos/"
folder.apest = "//Bases_Datos/"
folder.apfun = "//Bases_Datos/"
folder.apmar = "//Bases_Datos/"
folder.appar = "//Bases_Datos/"
folder.aprec = "//Bases_Datos/"
folder.aptra = "//Bases_Datos/"
folder.aptrn = "//Bases_Datos/"
folder.speje = "//Bases_Datos/"
folder.spinf = "//Bases_Datos/"
folder.sprec = "//Bases_Datos/"
folder.jmeje = "//Bases_Datos/"
folder.jminf = "//Bases_Datos/"
folder.jmrec = "//Bases_Datos/"
}
else {}
# URL Por fuente y datos
if (fuente == "ayuntamiento" & datos == "comision") {url.complemento = url.datos.comis}
else if (fuente == "ayuntamiento" & datos == "estructura") {url.complemento = url.datos.estru}
else if (fuente == "ayuntamiento" & datos == "integrantes") {url.complemento = url.datos.integ}
else if (fuente == "ayuntamiento" & datos == "actividades") {url.complemento = url.datos.activ}
else if (fuente == "administracion" & datos == "estructura") {url.complemento = url.datos.apest}
else if (fuente == "administracion" & datos == "funciones") {url.complemento = url.datos.apfun}
else if (fuente == "administracion" & datos == "marco") {url.complemento = url.datos.apmar}
else if (fuente == "administracion" & datos == "participacion") {url.complemento = url.datos.appar}
else if (fuente == "administracion" & datos == "recursos") {url.complemento = url.datos.aprec}
else if (fuente == "administracion" & datos == "tramites") {url.complemento = url.datos.aptra}
else if (fuente == "administracion" & datos == "transparencia") {url.complemento = url.datos.aptrn}
else if (fuente == "seguridad" & datos == "ejercicio") {url.complemento = url.datos.speje}
else if (fuente == "seguridad" & datos == "infraestructura") {url.complemento = url.datos.spinf}
else if (fuente == "seguridad" & datos == "recursos") {url.complemento = url.datos.sprec}
else if (fuente == "justicia" & datos == "ejercicio") {url.complemento = url.datos.jmeje}
else if (fuente == "justicia" & datos == "infraestructura") {url.complemento = url.datos.jminf}
else if (fuente == "justicia" & datos == "recursos") {url.complemento = url.datos.jmrec}
# Folders por fuente y datos
if (fuente == "ayuntamiento" & datos == "comision") {folder.complemento = folder.comis}
else if (fuente == "ayuntamiento" & datos == "estructura") {folder.complemento = folder.estru}
else if (fuente == "ayuntamiento" & datos == "integrantes") {folder.complemento = folder.integ}
else if (fuente == "ayuntamiento" & datos == "actividades") {folder.complemento = folder.activ}
else if (fuente == "administracion" & datos == "estructura") {folder.complemento = folder.apest}
else if (fuente == "administracion" & datos == "funciones") {folder.complemento = folder.apfun}
else if (fuente == "administracion" & datos == "marco") {folder.complemento = folder.apmar}
else if (fuente == "administracion" & datos == "participacion") {folder.complemento = folder.appar}
else if (fuente == "administracion" & datos == "recursos") {folder.complemento = folder.aprec}
else if (fuente == "administracion" & datos == "tramites") {folder.complemento = folder.aptra}
else if (fuente == "administracion" & datos == "transparencia") {folder.complemento = folder.aptrn}
else if (fuente == "seguridad" & datos == "ejercicio") {folder.complemento = folder.speje}
else if (fuente == "seguridad" & datos == "infraestructura") {folder.complemento = folder.spinf}
else if (fuente == "seguridad" & datos == "recursos") {folder.complemento = folder.sprec}
else if (fuente == "justicia" & datos == "ejercicio") {folder.complemento = folder.jmeje}
else if (fuente == "justicia" & datos == "infraestructura") {folder.complemento = folder.jminf}
else if (fuente == "justicia" & datos == "recursos") {folder.complemento = folder.jmrec}
else {}
### Descargar -----------------------------------------------------------------------------------------
#else {stop("Nombre de fuente no reconocida en la base de datos. Revisa el Diccionario de Datos utilizando la función CatalogoInegi()")}
# Temp files
fformat = "dbf"
temp.cngmd = tempfile()
zipdir = tempdir()
# Descargar
url.base = paste0("https://www.inegi.org.mx/contenidos/programas/cngmd/", year, "/microdatos/m1/", url.complemento, year, "_", fformat, ".zip")
utils::download.file(url.base, temp.cngmd)
utils::unzip(temp.cngmd, exdir = zipdir)
list_dataraw = as.list(list.files(paste0(zipdir, folder.complemento)))
# Read all .dbf files in the folder
for (i in list_dataraw) {
Object = foreign::read.dbf(paste0(zipdir, folder.complemento, i), as.is = TRUE)
Object$UBIC_GEO = paste0(formatC(as.character(Object$UBIC_GEO), width=5, flag="0"))
assign(paste0("dt.", tools::file_path_sans_ext(i)), Object)
}
list_dataclean = mget(ls(pattern = "dt."))
# Return Object
return(list_dataclean)
message("Se ha creado una lista con varias bases de datos")
} # End of Function
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.