Ir al contenido principal

R parte 3


Vamos ahora con los porcentajes.
Aunque cuando empecé a estudiar las TICs (antes informática) en un tiempo donde la programación orientada a objetos era una curiosidad, no me gusta repetir código y aunque no con métodos y polimorfismo, por medio de funciones y subrutinas tratábamos de optimizar recursos en la era de los procesadores INTEL 8086/8088 donde todo era precario.
Para esta entrega tratando de evitar los ciclos para intercalar, le aplicamos ingeniería al asunto e hicimos nuestra primer función en R la cual le llamamos intercalar().
Antes de eso hablaremos de la función svyratio() que es para realizar operaciones: obtener razones o en si divisiones. Vamos al ejemplo:



Para sacar los porcentajes es necesario usar otra función del paquete survey y como lo menciono arriba es la svyratio(). Para el cálculo del porcentaje de mujeres embarazadas de 15 a 49 años que deseaban embarazarse (cel1_2) es necesario dividirlo por el subuniverso que son las mujeres embarazadas de 15 a 49 años (cel1_1) como se observa en la imagen.


Entonces hacemos la siguiente instrucción.

svyratio(~cel1_2,denominator=~cel1_1,DisenoE)


El resultado es un arreglo de svyratio…


Para multiplicarlo por 100 necesitamos accesar a dicho elemento.

svyratio(~cel1_2,denominator=~cel1_1,DisenoE)[[1]]*100

Para hacer los cortes por grupo de edad es algo similar a svyby() con svytotal(), solo que ahora es svyby() con svyratio(). Ejemplifico con los porcentajes por grupos de edad.


Se puede advertir que ahora accesamos el elemento 2, de este dataframe (resultado de svyby), haciéndolo con su índice 2, [[2]].
Y bueno si quisiéramos arrancar como lo hicimos con los cuadros expandido y muestral lo podemos hacer con la misma lógica, sin embargo todo se puede y debemos mejorarlo, entonces para no repetir los ciclos de intercalación, mejor creamos una función.
Por ahora esta medio “macucha” - chafa – luego si hay tiempo la mejoraremos.Para no entrar en detalles, la abstracción es: se mandan dos arreglos que se quieran intercalar y la posición donde se desea que se intercalen los elementos del segundo arreglo, con la condición de que para que funcione debe ser de iguales dimensiones o factorizados según la posición de intercalación, dicho en otras palabras por ejemplo (dimarreglo2 =6 a dim arreglo1=12 posición a intercalar 3, dimarreglo2=6 a dimarreglo1=18 posición a intercalar 4, dimarreglo1=6 a dimarreglo2=24 posición a intercalar 5) – que por cierto ya se me ocurrió como simplificar la función para la versión 2. Aquí el código:


 Para este cuadro la primera columna es la cifra del cuadro expandido, por lo que creo otra variable llamada:

FE DE ERRATAS: Para este ejemplo el arreglo resultante le llamé c, pero c es una palabra reservada en R, al tener algunas fallas en el código cambié el nombre a este identificador.

ColT <- col1

Entonces les muestro el código de la segunda columna que son porcentajes.



Misma secuencia para la columna2, una vez terminados los cálculos de las 2 columnas se crea el dataframe con los arreglos ColT, col1 y col2.

cuadro5_1 <- data.frame(ColT, col2, col3)

Y podemos revisar las cifras contra el cuadro publicado.




Y pues hasta aquí lo que con REDATAM se hace sin mayores dificultades y con apoyos de asistentes gráficos inclusive, las siguientes partes serán ahora si de las precisiones estadísticas, razón por la cual nos hemos movido a este lenguaje.
Para terminar no tengo idea porque en la columna 2 me salen 2 decimales y en la columna 1 solamente 1, habrá que investigar. Seguiremos con las entregas subsecuentes.
Miguel Araujo

Comentarios

Entradas populares de este blog

Posit RStudio / Spark en Ubuntu 24.04

Apache Spark es " un motor de análisis unificado de código abierto para procesar datos a gran escala en clústeres " y para el área donde trabajamos es fundamental debido a que permite cargar y procesar archivos de gran tamaño. Con la reciente adqusición de un equipo de los llamados estaciones de trabajo, el sistema operativo con el que opera es un Ubuntu por lo que yo habilité un equipo viejo con un sistema operativo de casi la misma versión solo que para escritorio, no para servidor. Por ahora el sistema manda constantemente un error relacionado con el "firmware" pero por ahora las aplicaciones que he instalado casi todas han funcionado con las pruebas realizadas hasta ahora, aquí el error que muestra generalmente cuando se instalan nuevos paquetes y sus dependencias.   Se encontraron errores al procesar:  firmware-b43-installer E: Sub-process /usr/bin/dpkg returned an error code (1)  La siguiente imagen es un pequeño resumen del hardware y software donde se está...

REDATAM en Ubuntu (Linux)

 En un blog alterno, escribí sobre como migraba un "viejo" Intel i5 al sistema operativo Ubuntu en su versión más actual. Me comunique con mi gran colega Lenin de la CELADE en Chile, después de mucho tiempo, y le pedí me diera un pequeño resumen del "estado del arte" de REDATAM me dijo que todo marchaba bien, y pues ahora creo que tengo que actualizarme en contenedores pues el web server se encuentra ahí. Nos pusimos manos a la obra, el instalable desde la página no tiene ninguna extensión de archivo, asumí que era un ejecutable para Linux, no se si la página sufra ataques constantes ya que después quise volver a descargar sin éxito, la página estaba caida, sin embargo rescate el ejecutable anteriormente descargado. Últimamente primero hago y después documento, ya que con todo y mi compañero Deep,  no todo sale a la primera ni como lo dictan sus sugerencias, sobre todo en Linux y MacOS.  Por lo que, les muestro solo el resultado final de esta primera exploración, im...

El problema del gallo - otra vertiente de usar Python en RMarkdown con Posit RStudio

Cuando pensamos que ya se había cruzado el río, el buen gallo - mi amigo el Dany  Lara- no podía insertar código de Python  en un documento de RMarkdown  usando la versión de escritorio de Posit RStudio a pesar de las soluciones como instalar el Python y direccionarlo desde R con la biblioteca reticulate . Si bien se podía ejecutar código del interprete base, al querer correr usando módulos y con ello intentando instalar dichos módulos mandaba el siguiente mensaje: > py_install('matplotlib') Using virtual environment "D:/tu_usuario/Documents/.virtualenvs/r-reticulate" ... WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)'))': /simple/matplotlib/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) a...