Importación de tablas externas: read.table()

Por lo general, los datos los tenemos en forma de tablas en las que encontramos una serie de variables de diferentes tipos dispuestas en columnas; y un número variable de registros que aparecen ocupando las filas de la tabla.
Sea cual sea la aplicación en la que tengamos la información, siempre podremos exportar la tabla en forma de fichero de texto. Esta es una de las formas más fáciles de trasladar datos desde cualquier aplicación hacia R. Tal vez lo más frecuente sea exportar las tablas a ficheros de texto en los que cada campo (columna, variable) quede limitado por tabuladores (tab delimited en inglés). Si tenemos una tabla como la siguiente:


ALTITUD ORIENTACIÓN TEMPERATURA
500 N 15
1500   6
25 S  



y la exportamos (desde la aplicación en la que la hemos creado) con el nombre datos.txt al directorio de trabajo de R, podremos incorporarla al espacio de trabajo con la siguiente orden:
datos<-read.table("datos.txt", header=T, sep="\t")
en ella se dice que el fichero (que debe ir entrecomillado) tiene una primera fila en la que van los nombres de las variables (header=T) y que el separador de columnas es el tabulador (sep="\t"). La orden podría funcionar correctamente aun sin colocar esa última opción siempre y cuando no haya ningún valor perdido (celdas en blanco) en la tabla original, pero como en nuestro caso sí los hay, es preciso introducirla. Si comprobamos el resultado, obtenemos lo siguiente
datos


 		 ALTITUD 		ORIENTACIÓN		 TEMPERATURA

1 500 N 15
2 1500 6
3 25 S NA
vemos que el valor perdido en la variable TEMPERATURA se ha convertido automáticamente en un NA (Not Avalaible en inglés), pero el perdido en la variable ORIENTACIÓN aparece en blanco. Esto se debe a que R transforma en NA's sólo las varibles numéricas. Si queremos que los valores perdidos de una variable no numérica se transformen en NA's para ser tratados como tales en R, debemos indicar a la hora de importar la tabla qué forma adoptan los valores perdidos en esos casos. Como en el nuestro (y es lo habitual) son celdas que están en blanco, lo que haremos será introducir la opción na.strings=""
datos<-read.table("datos.txt", header=T, na.strings=``'', sep="\t")
datos

		ALTITUD 		ORIENTACIÓN 		TEMPERATURA

1 500 N 15
2 1500 NA 6
3 25 S NA
Con esta orden de importación, las variables numéricas contenidas en la tabla de origen serán mantenidas como numéricas, pero las variables de tipo carácter serán transformadas en lo que en R se llama factores. Cuando conozcamos mejor cómo funciona R podremos decidir si eso nos conviene o no. Cuando deseemos mantener las variables de tipo carácter como tales, deberemos añadir a la función read.table la opción as.is=T.
2007-02-12