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 Cloud - como instalar librerías de Python en el entorno de R

 Ahora que estamos tomando una maestría buscando que siga "girando la ardilla" por unos años más en la materia de "Cómputo Estadístico" nos ha sugerido usar la versión gratuita de Posit en la nube. En su página definen este producto como "es una solución basada en la nube que permite acceder al poderoso conjunto de herramientas de ciencia de datos de Posit directamente en el navegador web  - sin requerir instalación o configuraciones complejas". Para los usuarios que han utilizado Posit RStudio en primera instancia verán el entorno muy similar a Posit Cloud con algunas pequeñas diferencias, para empezar necesitamos un usuario o contraseña aunque es posible autenticarse usando alguna cuenta existente como es el caso de Google. Con el tiempo y trabajando en desarrollo de software, vamos entendiendo que quizás el nombre queda muy grande a los pequeños ejemplos, pero es muy recomendable el uso de proyectos siempre. A continuación vemos el entorno Posit Clo...

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...