Leer TXT en R

Manipulación de datos con R Importar y exportar datos
Aprende a leer archivos TXT con la función read.table en R

El lenguaje de programación R permite cargar archivos TXT. Si te estás preguntando cómo leer archivos TXT en R, la función más básica para ello es la función read.table. En este tutorial mostramos cómo leer el archivo txt en R con varios ejemplos y revisaremos cómo descargar o importar archivos TXT desde la web para trabajar con ellos en R o RStudio.

¿Cómo leer archivos TXT en R?

Puedes leer un archivo TXT en R con la función read.table. Importar archivos TXT en R rara vez necesita más argumentos de los especificados a continuación. Aun así, en las siguientes subsecciones explicaremos dos más (skip y skipNul) por si resultan de interés, pero en caso de que quieras conocer todos los argumentos, puedes encontrarlos en la documentación de la función read.table o llamando a la ayuda de la función con ?read.table. Esta sintaxis básica afecta a casi todos los archivos de datos TXT.

read.table(file,           # Archivo de datos TXT indicado como string o ruta completa al archivo
           header = FALSE, # Si se muestra el encabezado (TRUE) o no (FALSE)
           sep = "",       # Separador de las columnas del archivo
           dec = ".")      # Carácter utilizado para separar decimales de los números en el archivo

Considera, como ejemplo, que tienes un archivo llamado mi_archivo.txt y que lo has guardado en tu directorio de trabajo. Puedes leerlo con el siguiente código, si quieres mostrar también el encabezado (nombres de las columnas).

data <- read.table(file = "mi_archivo.txt", header = TRUE)
head(data)

La salida de un archivo TXT leído con la función read.table será de la clase “data.frame”.

En caso de que tengas el archivo en otro directorio que no sea su directorio de trabajo, deberás especificar la ruta completa donde se encuentra el archivo de datos.

data <- read.table(file = "C:\Mi_ruta\mi_archivo.txt", header = TRUE)
data <- read.table(file = "C:/Mi_ruta/mi_archivo.txt", header = TRUE) # Equivalente

También hay dos funciones (read.delim y read.delim2) para tratar con archivos delimitados de forma predeterminada. Estas funciones tienen los argumentos predeterminados siguientes:

read.delim(file = "mi_archivo.txt" header = TRUE, sep = "t", dec = ".")
read.delim2(file = "mi_archivo.txt", header = TRUE, sep = "t", dec = ",")
Función header sep dec
read.table FALSE “” “.”
read.delim TRUE “\t” “.”
read.delim2 TRUE “\t” “,”

Saltar filas con el argumento skip

A veces, los archivos TXT que estás leyendo contienen algunas líneas de texto antes del conjunto de datos. Para ese propósito, puedes usar el argumento skip, que por defecto está establecido en 0. Como ejemplo, en caso de que haya 5 líneas de texto antes de tus datos, puedes leer el archivo de la siguiente manera:

# Saltar 5 filas
read.table(file = "mi_archivo.txt", skip = 5)

¿Cómo identificar valores NULL en un TXT?

Si tu archivo de datos TXT contiene valores NULL, puedes establecer el argumento skipnul como TRUE para obviarlos.

read.table(file = "C:\My_path\mi_archivo.txt", skipnul = TRUE)

Importar TXT desde una URL en R

En caso de que tengas un archivo TXT alojado en algún sitio web, puedes abrirlo sin descargarlo. Solo necesita pasar la URL como cadena al primer argumento de la función.

url <- "http://courses.washington.edu/b517/Datasets/string.txt"
datos <- read.table(url, header = TRUE)

Descargar TXT en R

Ahora que ya sabes cómo leer un TXT en R, debes tener en cuenta que puedes descargar directamente un archivo TXT a tu directorio de trabajo con la función download.file, pasando como primer argumento el enlace y como segundo el nombre que le quieras poner a los datos de tipo .txt.

getwd() # Directorio donde se guardará el archivo
url <- "http://courses.washington.edu/b517/Datasets/string.txt"
download.file(url, "mi_archivo.txt")

Si no quieres que el archivo se guarde en el directorio de trabajo actual, puedes especificar la ruta donde quieras que se descargue el archivo.

download.file(url, "C:\carpeta\mi_archivo.txt")