Julio César Martínez Sánchez
"Conocimiento que no se comparte, se echa a perder y se va a la basura"
Temario
Módulo 1
El primer paso para utilizar R es instalar los paquetes
que es donde se encuentran las diferentes funciones que se ocupan para el análsis. Para esta sesión, se requieren los siguientes: data.table, foreign, questionr, base.
install.packages
. Se puede instalar de manera individual, o bien, se puede definir una lista y hacer una instalación conjunta. install.packages("readxl")
install.packages("sas7bdat")
install.packages(c("foreign","data.table","questionr","base","car"))
library
. Para mayor detalle se recomienda la página Quick-R Packages
library(data.table)
library(foreign)
library(questionr)
library(base)
library(car)
library(readxl)
library(sas7bdat)
Ctrl + L
y el entorno de trabajo (environment) con rm()
rm(list = ls())
# Ctrl + L Limpia la consola
\\
o /
para definir la ruta de donde están las bases de datos. Conviene mencionar que se deben evitar espacios, caractéres especiales y, en el caso del español, acentos y la letra ñ
setwd("F:/TallerR_COLMEX-master/TallerR_COLMEX-master/Datos")
read.spss
. Además, para tener una base legible para R, se usa la función data.frame
.
excel<-data.frame(read_excel("EXCEL_enoe.xlsx"))
dbf<-data.frame(read.dbf("DBF_enoe.dbf"))
stata<-data.frame(read.dta("STATA_enoe.dta"))
cvs<- data.frame(read.table("CVS_enoe.csv", header=TRUE, sep=","))
sas<-data.frame(read.sas7bdat("SAS_enoe.sas7bdat",debug = FALSE))
spss<-data.frame(read.spss("SPSS_enoe.sav"))
## Warning in read.spss("SPSS_enoe.sav"): SPSS_enoe.sav: Unrecognized record
## type 7, subtype 18 encountered in system file
write.dta
.
#Limpiamos y solo nos quedamos con la base de spss
rm("excel","dbf","stata","cvs","sas")
#Guardamos en DTA (stata)
write.dta(spss, "Julio_R.dta")
#Guardamos en DBF (foxpro)
write.dbf(spss, "Julio_R.dbf")
#Guardamos en CSV (Excel)
write.table(spss, "Julio_R.txt", sep=",")
names
y head
; el primero muestra el nombre de todas las variables y el segundo los dos primeros valores.
#Descripción de la base
names(spss)
head(spss,2)
# Filas (como en EXCEL)
spss[1,]
#Columnas (como en EXCEL)
spss[,2]
#FIlas y columnas
spss[1,2]
?
seguido del nombre de la función de la cual se requiera la documentación.
?wtd.table
$
y el nombre de la variable
wtd.table(spss$POS_OCU)
## 0 1 2 3 4
## 5220 3143 153 948 134
weights
e indicar el nombre de la variable que se va a utilizar
wtd.table(spss$POS_OCU, weights=spss$FAC)
## 0 1 2 3 4
## 4895622 3007607 146231 853515 115294
#Tabulados con datos muestrales (sin ponderar)
wtd.table(spss$SEX,spss$POS_OCU)
## 0 1 2 3 4
## 171 0 0 0 0
## 1 2045 1739 111 577 49
## 2 3004 1404 42 371 85
#Tabulados con datos ponderados
wtd.table(spss$SEX, spss$POS_OCU, weights=spss$FAC)
## 0 1 2 3 4
## 156601 0 0 0 0
## 1 1912160 1644663 108670 518052 42036
## 2 2826861 1362944 37561 335463 73258
Para generar las etiquetas se debe usar la función factor
y se debe especificar 3 cosas:
spss$SEX <- factor(spss$SEX,levels = c(1,2),labels = c("Hombre", "Mujer"))
wtd.table(spss$SEX, weights=spss$FAC)
## Hombre Mujer
## 4225581 4636087
spss$POS_OCU <- factor(spss$POS_OCU,levels = c(1,2,3,4,5),labels = c("Subordinados", "Empleadores","Cuenta Propia", "Sin Pago","NE"))
wtd.table(spss$POS_OCU, spss$SEX, weights=spss$FAC)
## Hombre Mujer
## Subordinados 1644663 1362944
## Empleadores 108670 37561
## Cuenta Propia 518052 335463
## Sin Pago 42036 73258
## NE 0 0
Para poder recodificar una variable de manera correcta, se debe de convertir la variable al tipo de datos deseado, es decir, convertir a númerica o caracter.
#Convertir a numéricas
spss$EDA <-as.numeric(as.character(spss$EDA))
#Crear nueva variable
spss$EDA_5categ<-0
#Establecer los rangos
spss$EDA_5categ[spss$EDA >= 0 & spss$EDA <=10] <- 1
spss$EDA_5categ[spss$EDA >= 11 & spss$EDA <=20] <- 2
spss$EDA_5categ[spss$EDA >= 21 & spss$EDA <=30] <- 3
spss$EDA_5categ[spss$EDA >= 31 & spss$EDA <=40] <- 4
spss$EDA_5categ[spss$EDA >= 41] <- 5
#Validar con un tabulado
wtd.table(spss$EDA_5categ)
## 0 1 2 3 4 5
## 171 1344 1484 1555 1320 3724
#Convertir a caracter
spss$R_DEF <- as.character(spss$R_DEF)
#Crear nueva variable
spss$R_DEF_VALIDO <-" "
#Establecer los rangos
spss$R_DEF_VALIDO[spss$R_DEF!="00"] <- "Entrevista incompleta"
spss$R_DEF_VALIDO[spss$R_DEF=="00"] <- "Entrevista completa"
#Validar con un tabulado
wtd.table(spss$R_DEF_VALIDO)
## Entrevista completa Entrevista incompleta
## 9595 3
Existen dos formas de generar sbconjuntos de datos:
Como se mencionaba en el punto 0.7, en R se sigue la lógica de un eje de coordenadas: spss [ CASOS , VARIABLES]
.
#Definimos las variables
var<-c("SEX", "POS_OCU")
#Seleccionamos SÓLO esas variables
nueva_spss_1 <- spss[,var]
which()
la cual sirve para hacer la selección de acuerdo a los criterios indicados. conviene hacer notar que se debe de tener las variables con el formato requerido.
nueva_spss_2 <- spss[ which(as.numeric(spss$EDA)<18), ]
nueva_spss_1 <- spss[which(as.numeric(spss$EDA)<18), c("SEX", "POS_OCU")]