[R-es] el uso de read.table

Argel Gastélum Arellánez argel.gastelum en gmail.com
Lun Jun 13 04:30:52 CEST 2011



El 12/06/11 18:53, Angela Andrea Camargo Sanabria escribió:
> Buenas tardes a todos,
>
> Podrían por favor resolverme una duda que tengo sobre el uso de esta
> función. Qué debo especificar en la sintaxis para que me lea una base de
> datos que tiene espacios en blanco (intencionalmente)  y no me salga este
> aviso de error
> Error en scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,
>   :   la linea 1 no tiene 27 elementos
>
> Muchas gracias por su ayuda.
>
>
> ----
> *Angela Andrea Camargo Sanabria*
> Estudiante Doctorado en Ciencias Biológicas
> Laboratorio de Ecología de poblaciones y comunidades tropicales
> Centro de Investigaciones en Ecosistemas (CIEco)
> UNAM, campus Morelia
> Antigua Carretera a Pátzcuaro # 8701
> Col. Ex-Hacienda de San José de la Huerta, CP 58190
> Morelia, Michoacán, México
> Tel.: 443-3222706 ext. 42511
> e-mail: aacamargo en cieco.unam.mx
> skype: angela.camargo2

     Hola Angela, buenas noches.

     Si estás tratando de leer tus datos a partir de un archivo de texto 
plano, o de un archivo .csv, a veces me pasa este problema cuando lo 
edito directamente con gedit (en ubuntu, o con el block de notas en 
windows). Digamos por ejemplo que tienes el archivo "datos.csv", con los 
siguientes datos separados por comas:

"FACTOR","RESPUESTA"
"F1",
"F1",1.56
"F1",1.57
"F2",2.43
"F2",2.30
"F2",2.15
"F3",1.78
"F3",0.83
"F3",1.04

     Para leer los datos con read.table puedes hacerlo así:

DATOS <- read.table("/ruta/del/archivo/datos.csv", header=T, sep=",")

el argumento header=T indicará que la primera línea tiene los 
encabezados de las columnas o variables, y el argumento sep="," indicará 
que las columnas estarán separadas por comas. Con esto R leerá los datos 
sin problemas, además pondrá un "NA" en el primer registro, donce falta 
el dato. Pero si hago una edición del archivo "datos.csv" y lo dejo así 
(sin la coma en la primera fila de datos):

"FACTOR","RESPUESTA"
"F1"
"F1",1.56
"F1",1.57
"F2",2.43
"F2",2.30
"F2",2.15
"F3",1.78
"F3",0.83
"F3",1.04

la orden "read.table" que usé antes me arroja el siguiente resultado, 
como el que pones en tu consulta:

Error en scan(file, what, nmax, sep, dec, quote, skip, nlines, 
na.strings,  :
   la linea 1 no tiene 2 elementos

     Creo que tal vez tienes algún problema de este tipo, resultado de 
capturar tus datos directamente sobre el archivo de texto plano, o de 
editar quitando las comas (o los tabuladores, que a veces se usan en vez 
de las comas para separar las columnas de datos). Para evitar estos 
problemas yo prefiero capturar mis datos directamente sobre una hoja de 
OpenOffice.org Calc, y exportarla como archivo .csv con los datos 
separados por comas.

     Espero te sea de utilidad.

     Saludos.

--
     Argel.



Más información sobre la lista de distribución R-help-es