Programación en R
8 Lectura de bases de datos
En este capítulo se mostrará cómo leer una base de datos externa hacia R.
8.1 ¿Qué es una base de datos?
Una base de datos es un arreglo ordenado de variables numéricas, lógicas y
cualitativas.
En la siguiente figura se ilustran los elementos de una base de datos.
8.2 ¿En qué formato almacenar una base de
datos?
Usualmente los archivos con la información para ser leídos por R se pueden almacenar
en formato:
plano con extensión .txt o,
Excel con extensión .csv.
En las secciones siguientes se mostrará cómo almacenar datos en los dos formatos
para ser leídos en R. En el Cuadro 8.1 se presenta una base de datos pequeña, tres
observaciones y tres variables, que nos servirá como ejemplo para mostrar cómo se
debe almacenar la información.
Table 8.1: Ejemplo de una base de datos simple.
Edad Fuma Pais
35 TRUE Colombia
Table 8.1: Ejemplo de una base de datos simple.
Edad Fuma Pais
46 TRUE Francia
23 FALSE Malta
8.2.1 Almacenamiento de información en Excel
Para almacenar la información del Cuadro 8.1 en Excel, abrimos un archivo nuevo
archivo de Excel y copiamos la información tal como se muestra en la figura de abajo.
Se debe iniciar en la parte superior izquierda, no se deben dejar filas vacías, no se debe
colorear, no se deben colocar bordes ni nada, se ingresa la información sin embellecer
el contenido. Por último se guarda el archivo en la carpeta deseada y al momento de
nombrar el archivo se debe modificar la opción tipo de archivo a csv (delimitado por
comas).
Recuerde que el archivo de Excel se debe guardar con extensión .csv.
8.2.2 Almacenamiento de información en bloc de
notas
Para almacenar la información del Cuadro 8.1 en un bloc de notas abrimos un archivo
nuevo de bloc de notas y copiamos la información tal como se muestra en la figura de
abajo. Se copian los nombres de las variables o los datos separados por un espacio
obtenido con la tecla tabuladora, cada línea se finaliza con un enter. Para guardar el
archivo se recomienda que el cursor quede al inicio de una línea vacía. En la figura de
abajo se señala la posición del cursor con la flecha roja, a pesar de que no éxiste línea
número 5, el curso debe quedar al inicio de esa línea número 5.
Es posible mejorar la apariencia de la información almacenada en el bloc de notas si, en
lugar de usar espacios con la barra espaciadora, se colocan los espacios con la barra
tabuladora, así la información se ve más organizada y se puede chequear fácilmente la
información ingresada. En la siguiente figura se muestra la información para el ejemplo,
claramente se nota la organización de la información.
Una buena práctica es usar la barra tabuladora para separar, eso permite que la
información se vea ordenada.
8.3 Función [Link]
La función [Link] se puede usar para leer bases de datos hacia R. La estructura
de la función con los parámetros más comunes de uso es la siguiente.
[Link](file, header, sep, dec)
Los argumentos de la función [Link] son:
file: nombre o ruta donde están alojados los datos. Puede ser un url o una
dirección del computador. Es también posible usar [Link]() para que se
abra un ventana y adjuntar el archivo deseado manualmente.
header: valor lógico, se usa TRUE si la primera línea de la base de datos tiene los
nombres de las variables, caso contrario se usa FALSE.
sep: tipo de separación interna para los datos dentro del archivo. Los valores
usuales para este parámetros son:
o sep=',' si el archivo tiene extensión .csv.
o sep='' si el archivo es bloc de notas con espacios por la
barra espaciadora.
o sep='\t' si el archivo es bloc de notas con espacios por la
barra tabuladora.
dec: símbolo con el cual están indicados los decimales.
Ejemplo
Crear la base de datos del Cuadro 8.1 en Excel y bloc de notas para practicar la lectura
de base de datos desde R.
Solución
Lo primero que se debe hacer para realizar lo solicitado es construir tres archivos (uno
de Excel y dos bloc de notas) igual a los mostrados en las figuras anteriores. Vamos a
suponer que los nombres para cada uno de ellos
son [Link], [Link] y [Link] respectivamente.
Para Excel
Para leer el archivo de Excel llamado [Link] podemos usar el siguiente código.
datos <- [Link](file='C:/Users/mi_usuario/Desktop/[Link]',
header=TRUE, sep=',')
datos
La dirección file='C:/Users/mi_usuario/Desktop/[Link]' le indica a R en qué
lugar del computador debe buscar el archivo, note que se debe usar el símbolo / para
que sea un dirección válida. Substituya la dirección del código anterior con la dirección
donde se encuentra su archivo para que pueda leer la base de datos.
Si no se conoce la ubicación del archivo a leer o si la dirección es muy extensa, se
puede usar [Link]() para que se abra una ventana y así adjuntar manualmente el
archivo. A continuación se muestra el código para hacerlo de esta manera.
datos <- [Link]([Link](), header=TRUE, sep=',')
datos
Para bloc de notas con barra espaciadora
Para leer el archivo de Excel llamado [Link] podemos usar el siguiente código.
datos <- [Link](file='C:/Users/mi_usuario/Desktop/[Link]',
header=TRUE, sep='')
datos
Para bloc de notas con barra tabuladora
Para leer el archivo de Excel llamado [Link] podemos usar el siguiente código.
datos <- [Link](file='C:/Users/mi_usuario/Desktop/[Link]',
header=TRUE, sep='\t')
datos
El usuario puede usar
indiferentemente file='C:/Users/bla/bla' o [Link]() para ingresar el archivo,
con la práctica se aprende a decidir cuando conviene una u otra forma.
Un error frecuente es escribir la dirección o ubicación del archivo usando \, lo correcto
es usar /.
Ejemplo
Leer la base de datos sobre apartamentos usados en la ciudad de Medellín que está
disponible en la página web cuya url
es: [Link]
Solución
Para leer la base de datos desde una url usamos el siguiente código.
enlace <-
'[Link]
datos <- [Link](file=enlace, header=TRUE)
La base de datos ingresada queda en el marco de datos llamado datos y ya está
disponible para usarla.
8.4 Lectura de bases de datos en Excel
Algunas veces los datos están disponibles en un archivo estándar de Excel, y dentro de
cada archivo hojas con la información a utilizar. En estos casos se recomienda usar el
paquete readxl (Wickham and Bryan 2023 ) y en particular la función readxl. A
continuación un ejemplo de cómo proceder en estos casos.
Ejemplo
En este enlace está disponible un archivo de Excel llamado BD_Excel.xlxs, una vez se
ha abierto la página donde está alojado el archivo, se debe descargar y guardar en
alguna carpeta. El archivo contiene dos bases de datos muy pequeñas, en la primera
hoja llamada Hijos está la información de un grupo de niños y en la segunda hoja
llamada Padres está la información de los padres. ¿Cómo se pueden leer las dos bases
de datos?
Solución
Lo primero que se debe hacer es instalar el paquete readxl, la instalación de cualquier
paquete en un computador se hace una sola vez y éste quedará instalado para ser
usado las veces que se requiera. La función para instalar un paquete cualquiera
es [Link], a continuación se muestra el código necesario para instalar el
paquete readxl.
[Link]("readxl")
Una vez instalado el paquete es necesario cargarlo, la función para cargar el paquete
en la sesión actual de R es library. La instrucción para cargar el paquete es la
siguiente:
library(readxl)
La instalación de un paquete con [Link] se hace sólo una vez y no más.
Cargar el paquete con library en la sesión actual se debe hacer siempre que se vaya
a usar el paquete.
Luego de haber cargado el paquete readxl se puede usar la función read_xl para leer
la información contenida en las hojas. A continuación el código para crear la base de
datos hijos contenida en el archivo BD_Excel.xlsx.
hijos <- read_excel([Link](), sheet='Hijos')
[Link](hijos) # Para ver el contenido
## Edad Grado ComicFav
## 1 8 2 Superman
## 2 6 1 Batman
## 3 9 3 Batman
## 4 10 5 Bob Esponja
## 5 8 4 Batman
## 6 9 4 Bob Esponja
A continuación el código para crear la base de datos padres contenida en el archivo
BD_Excel.xlsx.
padres <- read_excel('BD_Excel.xlsx', sheet='Padres')
[Link](padres) # Para ver el contenido
## Edad EstCivil NumHijos
## 1 45 Soltero 1
## 2 50 Casado 0
## 3 35 Casado 3
## 4 65 Divorciado 1
La función read_excel tiene otros parámetros adicionales útiles para leer bases de
datos, se recomienda consultar la ayuda de la función escribiendo en la
consola help(read_excel).
EJERCICIOS
Realice los siguiente ejercicios propuestos.
1. En el Cuadro 8.2 se presenta una base de datos sencilla. Almacene la
información del cuadro en dos archivos diferentes, en Excel y en bloc de notas.
Lea los dos archivos con la función [Link] y compare los resultados
obtenidos con la del Cuadro 8.2 fuente.
Table 8.2: Base de datos para practicar lectura.
Fuma Pasatiempo Num_hermanos Mesada
Si Lectura 0 4500
Si NA 2 2600
No Correr 4 1000
No Correr NA 3990
Si TV 3 2570
No TV 1 2371
Si Correr 1 1389
NA Correr 0 4589
Si Lectura 2 NA
2. En la
url [Link] es
tán disponibles los datos sobre medidas corporales para un grupo de estudiante
de la universidad, use la función [Link] para leer la base de datos.
References
Wickham, Hadley, and Jennifer Bryan. 2023. Readxl: Read Excel
Files. [Link] .