2.3 Lectura de las bases de datos y procesamientos básicos

Es muy usual que al trabajar proyectos en R sea necesario importar bases de datos con información relevante para un estudio en particular. Los formatos de bases de datos que R permite importar son diversos, entre ellos se tienen xlsx, csv, txt, STATA, etc. Particularmente, para la lectura de bases de datos provenientes de STATA 13, se deb utilizar la función read.dta13.

Una vez leída la base de datos en el formato pertinente es recomendable transformarla al formato nativo de R, es decir .RDS. Este es un formato más eficiente y propio de R. Una vez se carga la base de datos se procede a utilizar las funciones en R para poder obtener resultados de los procesamientos agregados y gráficos de interés. Para ejemplificar el uso de funciones que permitan obtener resultados agregados, utilizaremos la base de datos BigCity del paquete TeachinSampling. Esta base corresponde a un conjunto de variables socioeconómicas de 150266 personas en un año en particular.

library(TeachingSampling)
data(BigCity)
data1 <- BigCity

Una vez guardada la base en nuestros archivos de trabajo, la función head permite vizualizar rápidamente los primeros datos de la base.

head(data1)
##        HHID PersonID   Stratum     PSU  Zone    Sex Age MaritalST Income
## 1 idHH00001  idPer01 idStrt001 PSU0001 Rural   Male  38   Married 555.00
## 2 idHH00001  idPer02 idStrt001 PSU0001 Rural Female  40   Married 555.00
## 3 idHH00001  idPer03 idStrt001 PSU0001 Rural Female  20    Single 555.00
## 4 idHH00001  idPer04 idStrt001 PSU0001 Rural   Male  19    Single 555.00
## 5 idHH00001  idPer05 idStrt001 PSU0001 Rural   Male  18    Single 555.00
## 6 idHH00002  idPer01 idStrt001 PSU0001 Rural   Male  35   Married 298.34
##   Expenditure Employment  Poverty
## 1      488.33   Employed  NotPoor
## 2      488.33   Employed  NotPoor
## 3      488.33   Inactive  NotPoor
## 4      488.33   Employed  NotPoor
## 5      488.33   Inactive  NotPoor
## 6      216.70   Employed Relative

Una vez cargada la base de datos en R, se puede empezar a reliazar los procesamientos según las necesidades de cada investigador. En este sentido, una de las primeras revisiones que se realizan al cargar las bases de datos es revisar su dimensión; es decir, verificar la cantidad de filas y columnas que tiene la base. Lo anterior se puede hacer con la función nrow, que identifica el número de registros (unidades efectivamente observadas) en la base de datos y con la función ncol, que muestra el número de variables en la base de datos. Los códigos computacionales son los siguientes:

nrow(data1)
## [1] 150266
ncol(data1)
## [1] 12

Una forma resumida de revisar la cantidad de filas y columnas que tiene la base de datos es con la función dim, la cual nos devuelve un vector cuya primera componente contiene la cantidad de filas y su segunda componente, la cantidad de columnas:

dim(data1)
## [1] 150266     12

Es usual que en las encuestas de hogares las bases de datos sean extensas; es decir, que contengan una cantidad importante de variables observadas y que, por lo general, su tamaño de muestra sea grande. Es por lo anterior que, para poder visualizar apropiadamente dichas bases de datos, una vez cargadas en R sea necesario hacerlo de manera externa. Esto es, abrir una pestaña diferente en R y hacer la navegación de la base como un texto plano. Lo anterior se realiza con la función View como se muestra a continuación:

View(data1)
Visor de bases de datos de RStudio
Visor de bases de datos de RStudio

Otra verificación importante que se debe realizar al momento de cargar una base de datos en R es el reconocimiento de las variables que incluye. Esto se puede hacer utilizando la función names la cual identifica las variables de la base de datos.

names(data1)

La función names solo devuelve un vector con los nombres de las variables que contiene la base. Sin embargo, si se quiere profundizar en qué información contiene cada variable, La función str muestra de manera compacta la estructura de un objeto y sus componentes. Para nuestra base se utilizaría de la siguiente manera:

str(data1)
## 'data.frame':    150266 obs. of  12 variables:
##  $ HHID       : chr  "idHH00001" "idHH00001" "idHH00001" "idHH00001" ...
##  $ PersonID   : chr  "idPer01" "idPer02" "idPer03" "idPer04" ...
##  $ Stratum    : chr  "idStrt001" "idStrt001" "idStrt001" "idStrt001" ...
##  $ PSU        : chr  "PSU0001" "PSU0001" "PSU0001" "PSU0001" ...
##  $ Zone       : chr  "Rural" "Rural" "Rural" "Rural" ...
##  $ Sex        : chr  "Male" "Female" "Female" "Male" ...
##  $ Age        : int  38 40 20 19 18 35 29 14 13 6 ...
##  $ MaritalST  : Factor w/ 6 levels "Partner","Married",..: 2 2 5 5 5 2 2 5 5 NA ...
##  $ Income     : num  555 555 555 555 555 ...
##  $ Expenditure: num  488 488 488 488 488 ...
##  $ Employment : Factor w/ 3 levels "Unemployed","Inactive",..: 3 3 2 3 2 3 3 NA NA NA ...
##  $ Poverty    : Factor w/ 3 levels "NotPoor","Extreme",..: 1 1 1 1 1 3 3 3 3 3 ...

Como se puede observar en la salida anterior, por ejemplo, la variable HHID es de tipo caracter al igual que la variable Sex, mientras que la variable Income es de tipo numérico. Todos los demás atributos de las variables se encuentran en la salida del código. Esta función es muy útil al momento de querer tener un panorama amplio del contenido y clase de cada variable en una base de datos, particularmente en una encuesta de hogares en donde se tiene, por la misma estructura del estudio, muchas clases o tipos de variables observadas.