2014-08-18

Importar datos en R: ficheros de texto

Title La función read.table es la manera más cómoda de importar datos en formato rectangular (hoja de datos) en R. Con ella R importa un fichero en formato rectangular y crea un data frame. Los principales argumentos son:

file - Nombre del fichero importado. Si no se incluye la ruta absoluta, R interpreta que el fichero se encuentra en el directorio de trabajo. También admite una URL completa.
header - Por defecto FALSE. Si la primera fila contiene los nombres de las variables TRUE.
sep - El delimitador, por defecto es sep = ""
quote - Cualificador de texto
dec - Separador decimal

Las funciones read.csv, read.csv2, read.delim, read.delim2 y read.fwf son versiones de la función read.table idénticas salvo por los argumentos que por defecto incluyen. Sirven como atajos o envoltorios (wrappers) con los argumentos apropiados por defecto.

read.csv: para importar ficheros separados por comas, con el punto como separador decimal.
read.csv2: para importar ficheros separados por punto y coma, con la coma como separador decimal.
read.delim: para importar ficheros delimitados por la tabulación con el punto como separador decimal.
read.delim2: para importar ficheros delimitados por la tabulación con la coma como separador decimal. read.fwf: para importar ficheros delimitados por un ancho fijo entre las columnas.

Ejemplos

ruta <- "http://www.cyclismo.org/tutorial/R/_static/simple.csv"
simple <- read.table(ruta, header= TRUE, sep = ",")
head(simple)
ruta <- "http://www.cyclismo.org/tutorial/R/_static/simple.csv"
simple2 <- read.csv(ruta)
head(simple2)
Con read.csv por defecto header = TRUE, por lo que no es necesario especificarlo como con read.table.

  trial mass velocity
1     A 10.0       12
2     A 11.0       14
3     B  5.0        8
4     B  6.0       10
5     A 10.5       13
6     B  7.0       11
read.table transforma las variables de caracteres en factores. Para evitarlo, introducimos el argumento as.is o stringsAsFactors.

# Comprueba que la variable es un factor
str(simple) # Todas las variables o trial
is.factor(x = simple$trial) 
# Evita que read.csv transforme los vectores de caracteres en factores.
simple2 <- read.csv(ruta, as.is = TRUE) 
simple <- read.csv(ruta, stringsAsFactors = FALSE)
Para seleccionar el fichero mediante un cuadro de diálogo usamos la función file.choose

fichero <- read.table(file.choose(), header= TRUE, sep = ",")
fichero <- read.csv(file.choose())

Tras la importación

A continuación algunas funciones para obtener información sobre los datos importados. Parte de la información es redundante.

 # Ver datos
head(simple) # Muestra las 6 primeras filas 
tail(simple) # Muestra las 6 primeras filas 
View(simple) # Abre visor con los datos importados
 # Atributos y estructura
names(simple) # Devuelve los nombres de las variables (columnas)
attributes(simple) # Obtenemos los atributos del objeto
dim(simple) # Número de filas por columnas (observaciones y variables)
sapply(simple, class) # Class type
sapply(simple, mode) # Mode
str(simple) # Estructura del objeto
summary(simple) # Resumen por variable
# Editar los datos
simple <- edit(simple) # Edita y reasigna
fix(simple) # Edita directamente sobre el objeto

En RStudio

1. Environment > Import Dataset > From Text File o From Web URL

2. Seleccionamos el fichero y se abre este cuadro de diálogo:

3. Modificamos las selecciones si fuera necesario y presionamos Import.

RStudio crea un data frame con el nombre del fichero importado y nos lo muestra con la función View. En RStudio el límite de filas mostradas es 1.000.

Referencias:
?read.table

No hay comentarios:

Publicar un comentario

Nube de datos