Para leer un fichero simple (por ejemplo en formato CSV), con los datos separados por espacios en blanco, tabuladores o saltos de línea, se utiliza la instrucción read.table
. Hay que tener especial cuidado con el formato del archivo, por ejmplo, si el carácter decimal no es un punto sino una coma, deberemos usar dec = “,”:
fichero.df <- read.table("c:/dir/mi.fichero", header = TRUE, sep = "", comment.char = "") # ruta para Windows
Se pueden saltar líneas (skip
) o leer un número fijo de líneas (nrows
). Hay funciones especializadas para otros archivos (ej., read.csv
) pero son casos específicos de read.table
.
Resulta muy importante poder guardar datos, funciones, etc., para
ser usados en otras sesiones de R. Esos datos así guardados pueden
compartirse con otros usuarios e incluso utilizarse en distintos
sistemas operativos. Los guardaremos con save()
y los leeremos con load()
.
x <- runif(20)
y <- list(a = 1, b = TRUE, c = "patata")
save(x, y, file = "xy.RData")
rm(x, y)
load("xy.RData")
Podemos guardar todos los objetos con
save.image() # guardado como '.RData'
save.image(file = "nombre.RData")
El fichero .RData
(sin nombre antes del punto) se carga al iniciarse R. R y muchos otros paquetes incorporan archivos con datos y se cargan con load("nombre.RData")
. Además la instrucción data
permite cargar archivos de las librerías disponibles.
data() # muestra todos los archivos
data(iris)
data(iris, package = "base") # equivalente
`?`(iris)
Lo mejor es exportar los datos desde Excel a un archivo de texto separado por tabuladores (CSV). Cuidado con las últimas columnas y missing data (Excel elimina los trailing tabs). Dos formas de minimizar problemas: (i) usar NA
para missing; (ii) poner una última columna con datos arbitrarios (ej., una columna llena de 2s). Cuidado también con líneas extra al final del fichero. Salvamos como texto (sólo salvamos una de las hojas).
Si este método no te convence echa un vistazo al paquete xlsx
Lo más sencillo es exportar una matriz (es necesario transponer la matriz).
write(t(x), file = "c:/dir/data.txt", ncolumns = n, append = FALSE)
También podemos exportar un data.frame
write.table(my.data.frame, file = "mi.output.txt", sep = "", row.names = FALSE,
col.names = TRUE)
Si lo que quieres es abrirlo más tarde en Excel, mejor expórtalo a un fichero CSV (importable a Excel)
write.table(x, file = "foo.csv", sep = ",", col.names = NA)