Manual. Curso introducción de R. Capítulo 5: Lectura avanzada de datos

En esta nueva entrega aprenderemos a importar datos a R desde otras fuentes. Habitualmente no introduciremos manualmente los datos, emplearemos las posibilidades de lectura que nos ofrece R. En este capítulo leeremos ficheros de texto y ficheros Access, para ello necesitaremos el paquete de R RODBC.

Para leer fichero de texto emplearemos un fichero de ejemplo GRADES.TXT que es un fichero de texto delimitado por espacios y sin cabeceras, tiene los siguientes campos:

Variable

ID del estudiante

genero

clase

puntuación de test

puntuación del examen 1

puntuación del examen 2

puntuación de laboratorio

puntuación del examen final

Descargateló aquí y guardaló en C:\WINDOWS\temp para seguir el ejemplo. La función que se emplea en R para leer tablas desde ficheros de texto es read.table:

> archivo <- read.table (file= "c:\\WINDOWS\\temp\\GRADES.TXT", header=FALSE) #leemos el archivo

> archivo

V1 V2 V3 V4 V5 V6 V7 V8

1 air f 4 50 93 93 98 162

2 aln m 4 49 95 98 97 175

3 bam m 4 39 63 84 95 95 ...

Vemos que la sintaxis de la función read.table es bastante sencilla. Recomiendo estudiar la documentación que tiene R al respecto de esta función. El argumento principal de esta función será file= <ubicación y nombre del fichero>, además con header indicamos si es necesario leer cabeceras, por defecto read.table tiene lo tiene a FALSE. Para introducir las cabeceras al fichero empleamos vectores:

> archivo <- read.table (file="c:\\WINDOWS\\temp\\GRADES.TXT") #leemos el archivo

> nombres<-c("ID","sexo","clase","test","exam1","exam2","labo","final") #creamos un vector de nombres

> names(archivo)<-nombres #nombramos las variables

> archivo

  ID sexo clase test exam1 exam2 labo final

1 air f 4 50 93 93 98 162

2 aln m 4 49 95 98 97 175

3 bam m 4 39 63 84 95 95

4 bag f 3 46 92 96 88 150...

Empleamos la función names para dar nombres a las variables del data.frame archivo a partir de un vector que contiene dichos nombres.

Otra fuente de datos muy habitual puede ser Access. Para leer bases de datos necesitaremos tener instalado el paquete RODBC. En el capítulo anterior se indicó como descargar e intalar este módulo de R. Para este ejemplo partimos de una BBDD Access bd1 almacenada en C:/WINDOWS/temp que contiene la siguiente tabla:

POBLACION RECLAM TAM_COCHE**** GRUPO_EDAD****
500 42 small 1
1200 37 medium 1
100 1 large 1
400 101 small 2
500 73 medium 2
300 14 large 2

Podéis crear la BBDD en la ubicación C:/WINDOWS/temp copiar y pegar el ejemplo para estudiar como funciona el código. Comencemos a analizar las sentencias en R:

> setwd("c:/windows/temp") #Especificamos el directorio de trabajo.

> library(RODBC)    #Cargamos los paquetes.

> bd<-odbcConnectAccess("bd1.mdb")

> bd #Analizamos la conexión ODBC

RODB Connection 1

Details:

  case=nochange

  DBQ=c:\windows\temp\bd1.mdb

  Driver={Microsoft Access Driver (*.mdb)}

  DriverId=25

  FIL=MS Access

  MaxBufferSize=2048

  PageTimeout=5

  UID=admin

Primero necesitamos especificar el directorio de trabajo con la función setwd. Después cargamos el módulo RODBC con la función library , recordemos que podemos cargarlo vía menú. Por último creamos la conexión con la función específica de RODBC odbcConnectAccess y comprobamos que la conexión funciona correctamente. Ahora estamos en disposición de realizar consultas sobre las tablas de la BBDD conectada:

> datos<-sqlQuery(bd,"SELECT * FROM tabla2") #Realizamos una consulta sobre la tabla2

> datos

  POBLACION RECLAM TAM_COCHE GRUPO_EDAD

1 500 42 small 1

2 1200 37 medium 1

3 100 1 large 1

4 400 101 small 2

5 500 73 medium 2

6 300 14 large 2

Las consultas se realizan con la función específica sqlQuery donde introduciremos la BBDD conectada y la consulta en SQL estándar entre comillas. Con esta sentencia hemos creado un objeto de R que contiene una tabla de Access. Ya tenemos conectado R con dos de los orígenes de datos más habituales. En sucesivas entregas leeremos datos con R de SAS y SPSS.