que he visto en varios casos que, si bien read.table()
no es capaz de leer un archivo delimitado por tabulador (por ejemplo la mesa de anotación de un microarray) devolver el siguiente error:read.csv vs read.table
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
line xxx did not have yyy elements
read.csv()
funciona perfectamente en el mismo archivo sin errores. Creo que también la velocidad de read.csv()
también es más alta que read.table()
.
Aún más: read.table()
está muy loco leyendo un archivo de mí. Hace este error al leer la línea 100, pero cuando copio y pego las líneas 90 a 110 justo después del encabezado del mismo archivo, sigue cometiendo un error de la línea 100 + 21 (nuevas líneas copiadas al principio). Si hay algún problema con esa línea, ¿por qué no informa ese error mientras lee la línea pegada al principio? Confirmo que read.csv()
lee el mismo archivo sin ningún error.
¿Tiene alguna idea de por qué read.table()
no puede leer los mismos archivos que read.csv()
trabaja en él? ¿También hay alguna razón para usar read.table()
en cualquier caso?
Lea también la página de ayuda para 'read.table()' en el uso de memoria sobre por qué puede parecer lento para archivos grandes. – Chase
no podemos responder su pregunta (actualizada) sin un ejemplo reproducible. Los problemas de lectura más comunes son (1) caracteres de comentario no detectados, (2) comillas sin igual, (3) cambios en el número de campos por línea después de las primeras 5 líneas del archivo cuando 'fill = TRUE'. Debido a que 'read.csv' y' read.table' tienen diferentes valores predeterminados para 'comment',' quote', y 'fill', cualquiera de estos podría ser el problema. –
PD Hay 8 combinaciones de 'comment' /' quote'/'fill': puedes experimentar con todas ellas y ver cómo difieren los resultados, lo que puede llevarte a la respuesta. 'count.fields()' también es útil para el diagnóstico. –