Gustavo Rojas Andrade 2022-12-21
Si este documento te es de utilidad, por favor cítalo.
Dos de los problemas de trabajar con tablas de la web, suele ser el tamaño y la actualización de las mismas. En este caso práctico se desarrolla un algoritmo con el contenido ofrecido por el INEGI (organismo mexicano). La información recabada por este organismo es puesto a disposición de la ciudadanía por medio de su portal web en archivos comprimidos que no solicitan de claves de acceso para su descarga y uso.
En el caso de algunos archivos, se puede acceder a ellos con la función de importación de datos mediante el URL sin mayor dificultad. Sin embargo, los archivos del INEGI suelen contener los metadatos correspondientes a la tabla, un archivo guía para la lectura de la tabla (diccionario) y la tabla en un formato .csv o .xlsx.
Por ello realicé este pequeño tutorial. En éste se muestra cómo trabajar con este tipo de tablas, sin la necesidad de descargar los archivos a nuestros ordenadores. Posibilitando en otros casos, que la actualización de los resultados esté en función de la actualización de los archivos dispuestos por el organismo, si no se realizan modificaciones importantes en la estructura del portal web.
Otra de las ventajas de realizarlo de esta manera es el de favorecer la reproducibilidad del análisis con la extracción del código. En vez de descargar los archivos en los diferentes ordenadores y cambiar las rutas de acceso a los archivos, es posible transferir el código al entorno adecuado y correrlos en el segundo o tercer ordenador.
El algortimo requerirá la lectura de las tablas, por lo que es
importante identificar el formato de la tabla ofrecida, por lo que podrá
requerir de los paquetes readr o readxl, según
sea el caso. En este caso se utiliza una tabla con el formato comma
separated values o csv, por lo que se carga el paquete
correspondiente, como se muestra a continuación.
library(readr)Para el ejercicio mostrado a continuación se inspecciona el contenido de las tablas Servicios educativos del protal citado anteriormente. El archivo a utilizar contiene 3 carpetas y cada una de ellas almacena un archivo. Se inspecciona el contenido y se presenta a continuación.
El siguiente bloque contiene el URL del cual se extraen los archivos que contienen las tablas a trabajar. Como se verá, este archivo se encuentra comprimido, por lo cual se procede con la descompresión del archivo.
url = "https://www.inegi.org.mx/contenidos/masiva/denue/denue_00_61_csv.zip"
temp = tempfile() # Esta función crea un archivo temporal que se usa para los archivos a trabajar
temp2 = tempfile()
download.file(url, temp) # Ejecuta la descarga del archivo o carpeta a descomprimir
unzip(zipfile = temp, exdir = temp2) # Descomprime el archivo almacenándolo en el segundo objeto que contiene al archivo temporalEs recomendable realizar una inspección del elemento descomprimido. Ello nos indicará el nombre de los archivos o carpetas que están contenidos. En este caso (y como se verá en el siguiente bloque), el archivo tiene otras carpetas que contienen a los archivos que se utilizarán. Los nombres de las carpetas se presenta en una lista, permitiendo tener una idea clara del contenido de cada una de éstas.
list.files(temp2) ## [1] "conjunto_de_datos" "diccionario_de_datos" "metadatos"
#list.dirs(temp2) # Si se opta por otro método, list.dirs() muestra las direcciones de los archivos y carpetasDebido a que la carpeta descomprimida contiene otras carpetas, se
procede con la inspección del contenido de las mismas. Nuevamente se
utiliza la función list.path() para revisar los nombres de
los archivos, dirigiendo la inspección por medio de la función
file.path().
De manera alternativa, podría crearse un nuevo objeto con la dirección de la subcarpeta, pero cuando se tiene más de un archivo, se puede crear un gran número de objetos. Por cuestión estética del entorno de trabajo no se realiza de esta manera, pero es posible.
Se comienza con la inspección de los archivos de la carpeta de metadatos debido a que este orden puede darle una mejor estructura a un trabajo posterior. El siguiente bloque muestra que el archivo contenido es un archivo es un archivo .txt.
list.files(file.path(temp2,"metadatos")) #Este código se puede utilizar con cada una de las carpetas como se mostrará posteriormente.## [1] "metadatos_denue.txt"
El siguiente bloque muestra una de las maneras de presentar el contenido del archivo de texto. En este caso, los metadatos de la tabla que se presentará posteriormente; recordando que los metadatos de una tabla son de importancia para un análisis porque en ellos se muestra mucha de la información respecto a los datoss, como puede ser el método de colecta de datos, el área que describe, la institución o personas que realizaron la colecta de datos, la temporalidad de colecta, la última fecha de modificación, entre otra.
Sedu_metadata = read.table(file.path(temp2, "metadatos","metadatos_denue.txt"),sep = "\t")
knitr::kable(Sedu_metadata)| V1 |
|---|
| Identifier: MEX-INEGI.EEC2.11-DENUE-2022 |
| Title: Directorio Estadístico Nacional de Unidades Económicas (DENUE) 11_2022 |
| Description: El Directorio Estadístico Nacional de Unidades Económicas ofrece datos de identificación, ubicación, actividad económica y tamaño de los negocios activos en el territorio nacional, actualizados, fundamentalmente, en el segmento de los establecimientos grandes. Esta edición del DENUE se actualizó con base en los resultados definitivos de los Censos Económicos 2019. |
| NOTA: Para mayor detalle consultar el documento metodológico en: |
| https://www.inegi.org.mx/app/biblioteca/ficha.html?upc=702825192730 |
| Modified: 2022-11-18 |
| Publisher: Instituto Nacional de Estadística y Geografía, INEGI |
| Mbox: atencion.usuarios@inegi.org.mx |
| License: Términos de Libre Uso de la Información del INEGI http://www.inegi.org.mx/inegi/terminos.html |
| DataDictionary: |
| Keyword: directorio, unidades económicas, establecimientos, registro de establecimientos, unidades económicas nuevas, registro estadístico de unidades económicas, DENUE, DENUE Interactivo |
| ContactPoint: Lic. José de Jesús Esquivel de la Rosa, 01800 111 4634 |
| Temporal: 2015-2022 |
| Spatial: Estados Unidos Mexicanos. |
| AccrualPeriodicity: ANUAL |
| Distribution: https://www.inegi.org.mx/app/descarga/?ti=6 |
Para la inspección del contenido del diccionario, o del archivo correspondiente se inspecciona la ruta. Este archivo contiene información que nos ayudará a comprender mejor el contenido de la tabla principal. El bloque siguiente muestra el código de manera reducida, pero su implementación se sugiere línea por línea.
list.files(file.path(temp2,"diccionario_de_datos")) # Muuestra lor archivos de la capreta diccionario
Sedu_dicc <- read.csv(file.path(temp2,"diccionario_de_datos","denue_diccionario_de_datos.csv")) #Designamos al objeto con ayuda de la ruta que se trazó.
Sedu_dicc #Se visualiza el contenido del segundo archivo. Se pueden utilizar otros métodos de visualización como la función View() dentro del entor no de RSTudio
#View(Sedu_dicc)## [1] "denue_diccionario_de_datos.csv"
## DICCIONARIO.DE.DATOS.DENUE..15.06.2016. X
## 1 Nombre del Atributo en csv Nombre del Atributo en DBF
## 2 id id
## 3 nom_estab nom_estab
## 4 raz_social raz_social
## 5 codigo_act codigo_act
## 6 nombre_act nombre_act
## 7 per_ocu per_ocu
## 8 tipo_vial tipo_vial
## 9 nom_vial nom_vial
## 10 tipo_v_e_1 tipo_v_e_1
## 11 nom_v_e_1 nom_v_e_1
## 12 tipo_v_e_2 tipo_v_e_2
## 13 nom_v_e_2 nom_v_e_2
## 14 tipo_v_e_3 tipo_v_e_3
## 15 nom_v_e_3 nom_v_e_3
## 16 numero_ext numero_ext
## 17 letra_ext letra_ext
## 18 edificio edificio
## 19 edificio_e edificio_e
## 20 numero_int numero_int
## 21 letra_int letra_int
## 22 tipo_asent tipo_asent
## 23 nomb_asent nomb_asent
## 24 tipoCenCom tipoCenCom
## 25 nom_CenCom nom_CenCom
## 26 num_local num_local
## 27 cod_postal cod_postal
## 28 cve_ent cve_ent
## 29 entidad entidad
## 30 cve_mun cve_mun
## 31 municipio municipio
## 32 cve_loc cve_loc
## 33 localidad localidad
## 34 ageb ageb
## 35 manzana manzana
## 36 telefono telefono
## 37 correoelec correoelec
## 38 www www
## 39 tipoUniEco tipoUniEco
## 40 latitud latitud
## 41 longitud longitud
## 42 fecha_alta fecha_alta
## 43 clee clee
## X.1 X.2
## 1 Tipo de dato Longitud
## 2 num\xe9rico 10
## 3 alfanum\xe9rico 150
## 4 alfanum\xe9rico 150
## 5 alfanum\xe9rico 6
## 6 alfanum\xe9rico 250
## 7 alfanum\xe9rico 20
## 8 alfanum\xe9rico 25
## 9 alfanum\xe9rico 100
## 10 alfanum\xe9rico 40
## 11 alfanum\xe9rico 100
## 12 alfanum\xe9rico 40
## 13 alfanum\xe9rico 100
## 14 alfanum\xe9rico 40
## 15 alfanum\xe9rico 100
## 16 num\xe9rico 7
## 17 alfanum\xe9rico 35
## 18 alfanum\xe9rico 35
## 19 alfanum\xe9rico 35
## 20 num\xe9rico 7
## 21 alfanum\xe9rico 35
## 22 alfanum\xe9rico 25
## 23 alfanum\xe9rico 75
## 24 alfanum\xe9rico 30
## 25 alfanum\xe9rico 75
## 26 alfanum\xe9rico 35
## 27 alfanum\xe9rico 5
## 28 alfanum\xe9rico 2
## 29 alfanum\xe9rico 40
## 30 alfanum\xe9rico 3
## 31 alfanum\xe9rico 100
## 32 alfanum\xe9rico 4
## 33 alfanum\xe9rico 100
## 34 alfanum\xe9rico 4
## 35 alfanum\xe9rico 3
## 36 alfanum\xe9rico 20
## 37 alfanum\xe9rico 75
## 38 alfanum\xe9rico 75
## 39 alfanum\xe9rico 8
## 40 num\xe9rico 20
## 41 num\xe9rico 20
## 42 alfanum\xe9rico 15
## 43 num\xe9rico 75
## X.3
## 1 Descripci\xf3n
## 2 N\xfamero de identificaci\xf3n del DENUE, es una clave num\xe9rica \xfanica para cada registro de la base de datos del Directorio Estad\xedstico Nacional de Unidades Econ\xf3micas (DENUE).
## 3 Es el nombre comercial o nombre exterior con el que se identifica o anuncia la unidad econ\xf3mica.Generalmente es f\xe1cil reconocerlo porque est\xe1 visible y escrito en r\xf3tulos, fachadas o anuncios luminosos. Ejemplo: ABARROTES LUPITA.Cuando la unidad econ\xf3mica no tiene ning\xfan apelativo comercial, entonces se registra con el nombre gen\xe9rico de la actividad o la descripci\xf3n de la actividad econ\xf3mica, ejemplo: ABARROTES o Comercio al por menor en tiendas de abarrotes, ultramarinos y miscel\xe1neas.
## 4 Es la forma con que est\xe1 legalmente constituida y registrada la persona moral, o la denominaci\xf3n de una sociedad legalmente constituida.Es importante considerar que en algunas sociedades mercantiles, la raz\xf3n social y el nombre comercial pueden ser los mismos, ejemplo: GILSA, S.A. de C.V.Cuando la unidad econ\xf3mica pertenece a una persona f\xedsica, el dato no se incluye para proteger la confidencialidad de la informaci\xf3n.
## 5 La clasificaci\xf3n de las actividades desarrolladas por las unidades econ\xf3micas debe hacerse utilizando el SCIAN y sus actualizaciones, con base en lo dispuesto en el acuerdo para el uso del SCIAN y en la recopilaci\xf3n, an\xe1lisis y presentaci\xf3n de estad\xedsticas econ\xf3micas, publicado en el Diario Oficial de la Federaci\xf3n del 10 de julio de 2009.\nEl c\xf3digo est\xe1 asignado con base en la actividad principal que desarrolla la unidad econ\xf3mica y de acuerdo con el Sistema de Clasificaci\xf3n Industrial para Am\xe9rica del Norte, versi\xf3n 2018.\nPara la asignaci\xf3n del c\xf3digo de actividad correspondiente, seg\xfan el SCIAN 2018, se consideraron tanto los productos (bienes y servicios) desarrollados por el establecimiento como sus procesos de producci\xf3n.
## 6 Nombre del c\xf3digo de actividad conforme al SCIAN 2018.
## 7 Comprende al personal contratado directamente por la raz\xf3n social y al personal ajeno suministrado por otra raz\xf3n social, que trabaj\xf3 para la unidad econ\xf3mica, sujeto a su direcci\xf3n y control y que cubri\xf3, como m\xednimo, una tercera parte de la jornada laboral. Puede ser personal de planta, eventual remunerado o no remunerado.\n\nLas unidades econ\xf3micas se clasifican por rangos de personal ocupado, que permiten identificar el tama\xf1o de Unidades Econ\xf3micas por el n\xfamero de personal que emplean; es decir, seg\xfan su personal ocupado total. Para el Directorio las Unidades Econ\xf3micas est\xe1n agrupadas en rangos o estratos de personal ocupado, con base en el personal ocupado total reportado por \xe9stas, como se indica en la siguiente tabla.\n\nPersonal Ocupado\n1 = 0 a 5\n2 = 6 a 10\n3 = 11 a 30\n4 = 31 a 50\n5 = 51 a 100\n6 = 101 a 250\n7 = 251 y m\xe1s
## 8 Es la superficie del terreno destinada para el tr\xe1nsito vehicular y/o peatonal, en la cual se encuentra ubicada la unidad econ\xf3mica (calle, avenida, andador, etc.)
## 9 Es el sustantivo propio con el cual se identifica la vialidad.
## 10 Es la superficie del terreno destinada para el tr\xe1nsito vehicular y/o peatonal, en la cual se encuentra ubicada la unidad econ\xf3mica (calle, avenida, andador, etc.)
## 11 Es el sustantivo propio con el cual se identifica la vialidad.
## 12 Es la superficie del terreno destinada para el tr\xe1nsito vehicular y/o peatonal, en la cual se encuentra ubicada la unidad econ\xf3mica (calle, avenida, andador, etc.)
## 13 Es el sustantivo propio con el cual se identifica la vialidad.
## 14 Es la superficie del terreno destinada para el tr\xe1nsito vehicular y/o peatonal, en la cual se encuentra ubicada la unidad econ\xf3mica (calle, avenida, andador, etc.)
## 15 Es el sustantivo propio con el cual se identifica la vialidad.
## 16 Son los valores num\xe9ricos que identifican a uno o varios inmuebles en una vialidad.
## 17 Son los caracteres alfanum\xe9ricos que identifican a uno o varios inmuebles en una vialidad.
## 18 Es el sustantivo propio con el que se identifica el inmueble donde est\xe1 ubicada la unidad econ\xf3mica.
## 19 Es con el que se identifica el piso o nivel del inmueble donde est\xe1 ubicada la unidad econ\xf3mica.
## 20 Son los valores num\xe9ricos que identifican el domicilio de la unidad econ\xf3mica al interior de un inmueble.
## 21 Son los caracteres alfanum\xe9ricos que identifican un domicilio al interior de un inmueble.
## 22 Es la clasificaci\xf3n que se da al asentamiento humano de acuerdo con su funci\xf3n (colonia, fraccionamiento, unidad habitacional, etc.)
## 23 Es el sustantivo propio con el cual se identifica el asentamiento humano en el que se ubica la unidad econ\xf3mica.
## 24 Tipo de plaza, centro comercial, etc\xe9tera donde se encuentra la unidad econ\xf3mica.
## 25 Nombre de la plaza, centro comercial, etc\xe9tera donde se encuentra la unidad econ\xf3mica.
## 26 Dato alfanum\xe9rico que corresponde al local en donde se localiz\xf3 la unidad econ\xf3mica.
## 27 Clave num\xe9rica integrada por cinco d\xedgitos establecido por el Servicio Postal Mexicano.
## 28 Clave que identifica a la entidad federativa estad\xedstica.
## 29 Es el sustantivo propio que identifica a la entidad federativa.
## 30 Clave que identifica al Municipio estad\xedstico, y en el caso de la Ciudad de M\xe9xico, las que identifican a las Alcald\xedas.
## 31 Es el sustantivo propio que identifica al Municipio, y en el caso de la Ciudad de M\xe9xico los que identifican a las Alcald\xedas.
## 32 Clave que identifica a la localidad estad\xedstica. Esta es el lugar ocupado con una o m\xe1s edificaciones utilizadas como viviendas, las cuales pueden estar habitadas o no, este lugar es reconocido por un nombre dado por alguna disposici\xf3n legal o la costumbre.
## 33 Es el sustantivo propio que identifica a la localidad. Esta es el lugar ocupado con una o m\xe1s edificaciones utilizadas como viviendas, las cuales pueden estar habitadas o no, este lugar es reconocido por un nombre dado por alguna disposici\xf3n legal o la costumbre.
## 34 Es la extensi\xf3n territorial que corresponde a la subdivisi\xf3n de las AGEM. Constituye la unidad b\xe1sica del Marco Geoestad\xedstico Nacional y, dependiendo de sus caracter\xedsticas, se clasifica en dos tipos, \xc1reas Geoestad\xedsticas B\xe1sicas Urbanas y \xc1reas Geoestad\xedsticas B\xe1sicas Rurales.
## 35 Clave geoestad\xedstica de la manzana, compuesta por tres d\xedgitos, que identifica a una extensi\xf3n territorial que est\xe1 constituida por un grupo de viviendas, edificios, predios, lotes o terrenos de uso habitacional, comercial, industrial o de servicios.
## 36 N\xfamero telef\xf3nico, secuencia de d\xedgitos que permite la comunicaci\xf3n v\xeda telef\xf3nica con la unidad econ\xf3mica.
## 37 Correo electr\xf3nico, es la serie de caracteres cuya finalidad es acceder a un servicio de red que posibilita a las unidades econ\xf3micas el env\xedo y recepci\xf3n de mensajes mediante sistemas de comunicaci\xf3n electr\xf3nicos.
## 38 Son los datos que permiten el acceso a informaci\xf3n de la unidad econ\xf3mica en Internet.
## 39 Grupo de categor\xedas que sirve para identificar si el establecimiento es fijo o semifijo, bajo las siguientes definiciones: \nEstablecimiento fijo: es la unidad que en una sola ubicaci\xf3n f\xedsica, asentada en un lugar de manera permanente y delimitada por construcciones e instalaciones fijas, combina acciones y recursos bajo el control de una sola entidad propietaria o controladora para realizar alguna actividad econ\xf3mica con y sin fines de lucro, excepto las destinadas al autoconsumo. En este tipo de establecimiento est\xe1n comprendidas las viviendas cuando en alg\xfan espacio de la casa-habitaci\xf3n, que tambi\xe9n est\xe1 destinado a otras actividades cotidianas, se realiza alguna actividad econ\xf3mica. \nEstablecimiento semifijo: establecimientos que est\xe1n fijos, enclavados en el suelo, y que permanecen de d\xeda y de noche en el mismo sitio aunque sus instalaciones sean fr\xe1giles o r\xfasticas. Tambi\xe9n aquellas instalaciones que aun cuando no est\xe9n enclavadas al suelo no pueden ser removidas de donde est\xe1n, aunque lleven a cabo actividades que tienen car\xe1cter temporal o estacional, siempre y cuando permanezcan activas y en un solo lugar durante un periodo de por lo menos tres meses seguidos.
## 40 Es la distancia que existe entre la unidad econ\xf3mica y el ecuador, medida sobre el meridiano que pasa por dicho punto.
## 41 Es la distancia que existe entre la unidad econ\xf3mica y el meridiano de Greenwich, medida sobre el paralelo que pasa por dicho punto.
## 42 Fecha en la que la unidad econ\xf3mica se integr\xf3 al Directorio Estad\xedstico Nacional de Unidades Econ\xf3micas y al Registro Estad\xedstico de Negocios de M\xe9xico (RENEM).
## 43 Es la llave \xfanica de identificaci\xf3n estad\xedstica, asignada exclusivamente por el INEGI a cada uno de los establecimientos y empresas registrados en el RENEM, cuya funci\xf3n es identificarlos un\xedvocamente y vincular a los establecimientos de una misma empresa.
Por último se importa la tabla principal. De la misma manera a la
tabla anterior, se puede facilitar la inspección del contenido por medio
de la función View() u otro método.
Sedu <- read.csv(file.path(temp2,"conjunto_de_datos","denue_inegi_61_.csv"))
head(Sedu, 4)
#View(Sedu)
unlink(c(temp, temp2))## id clee
## 1 46594 01001611122002634000000000U4
## 2 8624796 01001713943003871000000000U7
## 3 9113033 01001611621001461000000000U4
## 4 7461715 01011611611000011000000000U8
## nom_estab
## 1 2010 BICENTENARIO DE LA INDEPENDENCIA DE MEXICO CLAVE 01DPR0697S TURNO MATUTINO ESCUELA PRIMARIA
## 2 ACADEMA BLACK DEMON
## 3 ACADEMIA DE ARTES MARCIALES
## 4 ACADEMIA DE BAILDE YL DANCE
## raz_social codigo_act
## 1 INSTITUTO DE EDUCACION DE AGUASCALIENTES 611122
## 2 611621
## 3 611621
## 4 611611
## nombre_act per_ocu
## 1 Escuelas de educaci\xf3n primaria del sector p\xfablico 31 a 50 personas
## 2 Escuelas de deporte del sector privado 0 a 5 personas
## 3 Escuelas de deporte del sector privado 0 a 5 personas
## 4 Escuelas de arte del sector privado 0 a 5 personas
## tipo_vial nom_vial tipo_v_e_1 nom_v_e_1 tipo_v_e_2
## 1 CALLE SEBASTIAN DE LARA AVENIDA JOSE E. FEMAT GUTIERREZ CALLE
## 2 CALLE TALAMANTES AVENIDA CONVENCION DE 1914 PONIENTE CALLE
## 3 ANDADOR NINGUNO AVENIDA ARQUEROS ANDADOR
## 4 AVENIDA CONSTITUCION CALLE VI\xd1EDOS CARI\xd1AN CALLE
## nom_v_e_2 tipo_v_e_3 nom_v_e_3 numero_ext
## 1 GERONIMO DE LA CUEVA CALLE CELIA MAR\xcdA MART\xcdNEZ NA
## 2 26 DE MARZO CALLE PUEBLITO 904
## 3 NINGUNO AVENIDA ARQUEROS 9
## 4 VI\xd1EDOS CALIFORNIA CALLE VI\xd1EDOS SAN MARCOS 0
## letra_ext edificio edificio_e numero_int letra_int tipo_asent
## 1 SN NA FRACCIONAMIENTO
## 2 NA COLONIA
## 3 E NA FRACCIONAMIENTO
## 4 SN 0 FRACCIONAMIENTO
## nomb_asent tipoCenCom
## 1 VILLAS DE NUESTRA SE\xd1ORA DE LA ASUNCION SECTOR GUADALUPE
## 2 SAN MARCOS
## 3 LIC PRIMO VERDAD INEGI
## 4 EX-VI\xd1EDOS GUADALUPE
## nom_CenCom num_local cod_postal cve_ent entidad cve_mun
## 1 20126 1 Aguascalientes 1
## 2 20070 1 Aguascalientes 1
## 3 20267 1 Aguascalientes 1
## 4 20358 1 Aguascalientes 11
## municipio cve_loc
## 1 Aguascalientes 1
## 2 Aguascalientes 1
## 3 Aguascalientes 1
## 4 San Francisco de los Romo 128
## localidad
## 1 Aguascalientes
## 2 Aguascalientes
## 3 Aguascalientes
## 4 Ex-Vi\xf1edos Guadalupe
## ageb manzana telefono correoelec www tipoUniEco latitud longitud
## 1 3539 3 NA Fijo 21.93176 -102.2558
## 2 0591 19 4494338100 Fijo 21.87953 -102.3127
## 3 2460 48 NA Fijo 21.86813 -102.2701
## 4 0136 4 4493915737 Fijo 21.95849 -102.2719
## fecha_alta
## 1 2014-12
## 2 2019-11
## 3 2019-11
## 4 2019-11
Se puede hacer de manera similar para los distintos recursos que ofrece el INEGI, modificando a la URL correspondiente, y realizando la inspección de los elementos como es debido. Como se mencionó en un inicio, este algoritmo puede ser fácilmente uno de los primeros pasos para el análisis de contenido e implemntaación de técnicas analíticas posteriores, facilitando su reproducibilidad.
Espero les sea de ayuda y les invito a citar esta fuente si la encuentran de utilidad. c: