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

Librería de REDATAM para R

Conectar bases de datos Oracle con R vía JDBC

Red 7 Admin