Capítulo 7 Importación y exportación de datos

7.1 Estableciendo nuestro directorio de trabajo

Establecer nuestro directorio de trabajo nos permite tener una mejor organización mientras trabajamos en R. Para conocer nuestro directorio de trabajo actual, usamos getwd()

getwd() 

Asigna a un objeto la ruta de la carpeta de trabajo. Recuerda cambiar /docs/mydir por los nombres de tus carpetas de trabajo

directory <- "C:/docs/mydir" #Windows
directory <- "/home/users/mydir"  #Mac OS o linux

setwd() permite ajustar el directorio de trabajo. Vamos a ajustarlo a la ruta de trabajo que guardamos en directory

setwd(directory)

7.2 Importación de datos

7.2.1 Archivos CSV

Importa archivos de texto plano con formato CSV (coma-separated values). Los datos los puedes descargar de aquí. Recuerda guardarlos en la carpeta de trabajo que asignaste en el paso anterior.

datosRCSV <- read.csv("iris.csv")
head(datosRCSV)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa

7.2.2 Archivos TXT

Importa archivos de texto plano con formato de tabla (data.frame). Los datos los puedes descargar de aquí. Recuerda guardarlos en la carpeta de trabajo.

datosRT <- read.table("iris.txt")
head(datosRT)
##             V1          V2           V3          V4      V5
## 1 Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 2          5.1         3.5          1.4         0.2  setosa
## 3          4.9           3          1.4         0.2  setosa
## 4          4.7         3.2          1.3         0.2  setosa
## 5          4.6         3.1          1.5         0.2  setosa
## 6            5         3.6          1.4         0.2  setosa

Notamos que los encabezados no forman parte de la tabla y que R genera sus propios encabezados. Para evitar esto, si el archivo que queremos importar contiene encabezados, el argumento header permite incorporar el encabezado del archivo que queremos importar.

datosRT <- read.table("iris.txt", header=TRUE)
head(datosRT)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa

Importemos este nuevo set de datos.

datosRT <- read.table("iris2.txt", header=TRUE)
head(datosRT)
##   Sepal.Length.Sepal.Width.Petal.Length.Petal.Width.Species
## 1                                    5.1|3.5|1.4|0.2|setosa
## 2                                4.9|3.4|1.4|0.2|versicolor
## 3                                 4.7|3.2|1.3|0.2|virginica

Los datos no se importaron correctamente y están separados por el símbolo “|” o pipe.

Los archivos csv están separados por comas y generalmente, los archivos txt están separados por tabulaciones. Para indicarle a R el tipo de separación que tiene nuestro archivo, usamos el argumento sep.

En el siguiente comando, el argumento sep="|" le indica a R que nuestros datos están separados por el símbolo “|” o pipe.

datosRT <- read.table("iris2.txt", header=TRUE, sep = "|")
head(datosRT)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
## 1          5.1         3.5          1.4         0.2     setosa
## 2          4.9         3.4          1.4         0.2 versicolor
## 3          4.7         3.2          1.3         0.2  virginica

7.3 Exportación de datos

Vamos a crear un data.frame para practicar cómo exportar los datos.

DosisX <- c(46, 20, 80, 100, 63)
DosisY <- c(6, 50, 70, 70, 63)
Lcelular <- c("MCF7", "Hela", "IPC-366", "T47D", "ZR75-1")
tablaDE <- data.frame(DosisX, DosisY, Lcelular)
tablaDE
##   DosisX DosisY Lcelular
## 1     46      6     MCF7
## 2     20     50     Hela
## 3     80     70  IPC-366
## 4    100     70     T47D
## 5     63     63   ZR75-1

7.3.1 Exportar como TXT

Vamos a guardar el data.frame tablaDE como un archivo de texto llamado “datos.txt” utilizando el comando write.table(). La tabla se guardará en nuestro directorio de trabajo actual.

write.table(tablaDE, "datos.txt")

7.3.2 Exportar como CSV

Vamos a guardar el data.frame tablaDE como un archivo csv llamado “datos.csv” utilizando el comando write.csv(). La tabla se guardará en nuestro directorio de trabajo actual.

write.csv(tablaDE, "datos.csv")

7.3.3 Argumentos al exportar

Así como al importar archivos existen diversos argumentos que podemos utilizar para darles ciertas indicaciones a R, también lo podemos hacer al momento de exportar los datos. Los siguientes argumentos se pueden usar con write.csv() y write.table().

row.names=FALSE nos permite suprimir los nombres de las filas

write.csv(tablaDE, "datos1.csv", row.names=FALSE)

Para indicar la separación del archivo utilizamos sep. Vamos a usar la tabulación como separador poniendo sep="\t".

write.csv(tablaDE, "datos2.csv", row.names=FALSE, sep="\t")

Para suprimir los nombres de las columnas, usamos col.names=FALSE

write.csv(tablaDE, "datos3.csv", row.names=FALSE, sep="\t", col.names=FALSE)

7.4 Archivos xlsx o de Excel

Para importar o exportar archivos de Excel, es necesario utilizar la paquetería "openxlsx" que nos permite trabajar con documentos de Excel en R. La instalación de paqueterías se realiza sólo una vez. Una vez que la librería o paquetería esté instalada, puedes omitir este paso.

install.packages("openxlsx", dependencies = TRUE)

Ahora cargaremos la paquetería. El llamado de librerías deberá hacerse cada que inicies una nueva sesión en R.

library(openxlsx)

El siguiente comando te permite leer y conocer más sobre las funciones que ofrece esta paquetería.

?openxlsx

7.4.1 Importación de datos xlsx o de Excel

Importaremos un nuevo set de datos de Excel que puedes descargar de aquí. Recuerda guardarlos en tu carpeta de trabajo.

datosXLSX <- read.xlsx("iris.xlsx")
head(datosRT)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
## 1          5.1         3.5          1.4         0.2     setosa
## 2          4.9         3.4          1.4         0.2 versicolor
## 3          4.7         3.2          1.3         0.2  virginica

7.4.2 Exportación de datos en Excel

Vamos a exportar el data.frame tablaDE que creamos anteriormente como un archivo de Excel llamado “datos.xlsx” utilizando el comando write.xlsx(). El archivo se guardará en nuestro directorio de trabajo actual.

write.xlsx(tablaDE, "datos.xlsx")