PROBLEMA: Cuantas mujeres en edad reproductiva trabajan en Mexico?
Para este ejercicio se van a usar la base de Caracteristicas sociodemograficas de los integrantes del hogar de la Encuesta Nacional de Ingresos y Gastos de los Hogares 2016 en el formato dbf.
Antes de iniciar a trabajar en R conviene limpiar el entorno de trabajo
rm(list=ls())
graphics.off()
options(warn=-1)
Par dar inicio al analisis conviene preguntarse que tipo de analisis se va a llevar a cabo?, se van a hacer analisis estadistico?, se haran graficas?
install.package
.
install.packages("foreign")
install.packages("ggplot2")
install.packages("questionr")
Hecho esto, el siguiente paso es cargar las librerias. Para mayor detalle se recomienda la pagina Quick-R Packages
library(base) # Funciones basicas
library(foreign) # Manipular diferentes formatos cvs, dta, dbf
library(questionr) # Tabulados
Es importante que al iniciar se defina el directorio de trabajo, el cual corresponde a la carpeta en donde se encuentran los archivos que se van a utilizar. Hay que utilizar
//
o /
para definir el entorno de trabajo
setwd("C:/Users/jmartinez/Desktop/FLACSO_R-master/FLACSO_R-master/Datos")
Para importar bases de datos hay que identificar el tipo de base y seleccionar la funcion mas adecuada. Por ejemplo, para importar base de csv, cuya extencion es sav se requiere la funcion read.csv. Ademas, para tener una base legible para R, se usa la funcion data.frame
.
excel<-data.frame(read_excel("sdemt119.xlsx"))
dbf<-data.frame(read.dbf("sdemt119.dbf"))
stata<-data.frame(read.dta("sdemt119.dta"))
cvs<- data.frame(read.table("sdemt119.csv", header=TRUE, sep=","))
En este caso se va a cargar la base sociodemografico del primer trimestre de 2019
cvs<- data.frame(read.table("sdemt119.csv", header=TRUE, sep=","))
Para guardar una base de datos, basta con determinar el tipo de datos que se requieran y elegir la funcion correspondiente. Si se quiere generar una base de Stata, entonces se selecciona la funcion:write.dta
.
write.dta(cvs, "Julio_R.dta")
write.dbf(cvs, "Julio_R.dbf")
names
y head
; el primero muestra el nombre de todas las variables y el segundo los dos primeros valores.
#Descripcion de la base
names(cvs)
head(cvs,2)
La manipulacion de las bases de datos sigue la logica de un eje de coordenadas ( x , y )
en donde x
son las filas y y
las columnas:
# Filas (como en EXCEL)
cvs[1,]
$
y el nombre de la variable
wtd.table(cvs$CLASE2)
## 0 1 2 3 4
## 84634 176997 6326 18681 119398
Aun y cuando ambas variables se encuentren en la misma base de datos, es necesario escribir el nombre de la variable
#Tabulados con datos muestrales (sin ponderar)
wtd.table(cvs$SEX,cvs$CLASE1)
## 0 1 2
## 1 39115 110020 43369
## 2 37503 73303 94710
Para generar las etiquetas se debe usar la funcion factor y se debe especificar 3 cosas:
En este caso se usa la variable SEX
la cual tiene dos valores (1 y 2) cuyas etiquetas son 1=Hombre, 2=Mujer.
cvs$SEX <- factor(cvs$SEX,levels = c(1,2),labels = c("Hombre","Mujer"))
cvs$CLASE2 <- factor(cvs$CLASE2,levels = c(1,2,3,4),labels = c("Ocupada","Desocupada","Disponibles","No disponible" ))
Para validar que se haya etiquetado correctamente la variable, se genera un tabulado para analizar el resultado
wtd.table(cvs$SEX,cvs$CLASE2)
## Ocupada Desocupada Disponibles No disponible
## Hombre 106260 3760 6534 36835
## Mujer 70737 2566 12147 82563
Para poder recodificar una variable de manera correcta, se debe de convertir la variable al tipo de dato deseado, es decir, convertir a numerica
o caracter
.
#8.1 Convertir las variables a numerico
cvs$EDA <-as.numeric(as.character(cvs$EDA))
#8.2 Crear nueva variable
cvs$edad_reproductiva<-0
#8.3 Establecer los rangos
cvs$edad_reproductiva[cvs$EDA >= 15 & cvs$EDA <=54] <- 1
cvs$edad_reproductiva[cvs$EDA >= 54] <- 2
#8.3 Validar con un tabulado
wtd.table(cvs$edad_reproductiva)
Existen dos formas de generar sbconjuntos de datos:
Seleccionar variables. Se seleccionan unicamente ciertas variables por lo que el numero de registros permanece igual
Seleccionar casos. Se mantienen todas las variables pero solo de un numero menor de casos
csv [ CASOS , VARIABLES]
.
#Definimos las variables
var<-c("SEX", "CLASE2","FAC")
#Seleccionamos SoLO esas variables
nueva_csv_1 <- cvs[,var]
Para hacer la seleccion se utiliza la funcion which()
la cual sirve para hacer la seleccion de acuerdo a los criterios indicados. conviene hacer notar que se debe de tener las variables con el formato requerido.
nueva_csv_2 <- cvs[ which(as.numeric(cvs$edad_reproductiva)==1), ]
nueva_csv_3 <- cvs[ which(as.numeric(cvs$edad_reproductiva)==1),var ]
Cuantas mujeres en edad reproductiva trabajan en Mexico?
wtd.table(nueva_csv_3$SEX,nueva_csv_3$CLASE2)
wtd.table(nueva_csv_3$SEX,nueva_csv_3$CLASE2, weights =nueva_csv_3$FAC)