Estoy tratando de leer un archivo .csv en R y al usar esta fórmula:
pheasant<-read.table(file.choose(),header=TRUE,sep=",")
Recibo este mensaje de advertencia:
"incomplete final line found by readTableHeader on 'C:\Documents and Settings..."
Hay un par de cosas que pensé que podrían haber causado esta advertencia, pero desafortunadamente no sé lo suficiente sobre R para diagnosticar el problema por mí mismo, así que pensé en publicar aquí con la esperanza de que alguien más pueda diagnosticarlo por mí.
- el archivo .csv era originalmente un archivo de Excel, que guardé en formato .csv
- el archivo consta de tres columnas de datos
- cada columna de datos tiene una longitud diferente, es decir, hay un número diferente de valores en cada columna
- Quiero comparar las medias (usando la prueba t o equivalente dependiendo de la distribución normal / no normal) de dos de las columnas a la vez, por ejemplo, prueba t entre los valores de la columna 1 y los valores de la columna 2, luego una t- prueba de los valores de la columna 1 y de la columna 3, etc.
¡Cualquier ayuda o sugerencia será muy apreciada!
r
line-endings
read.csv
Kate
fuente
fuente
Respuestas:
El mensaje indica que la última línea del archivo no termina con un carácter de fin de línea (EOL) (salto de línea (
\n
) o retorno de carro + salto de línea (\r\n
)). La intención original de este mensaje era advertirle que el archivo puede estar incompleto; la mayoría de los archivos de datos tienen un carácter EOL como último carácter del archivo.El remedio es simple:
fuente
El problema es fácil de resolver; es porque la última línea DEBE estar vacía.
Diga, si su contenido es
cámbialo a
Hoy me encontré con este tipo de problema, cuando intentaba usar R para leer un archivo JSON, usando el comando a continuación:
json_data<-fromJSON(paste(readLines("json01.json"), collapse=""))
; y lo resuelvo con mi método anterior.
fuente
Warning message: In readLines(file) : incomplete final line found on 'apiAnaheim.R'
La advertencia se resolvió agregando una línea vacía al final. No estoy seguro de por qué ocurre esto.¿Está realmente seguro de haber seleccionado el archivo .csv y no el archivo .xls? Solo puedo reproducir el error si intento leer un archivo .xls. Si intento leer un archivo .csv o cualquier otro archivo de texto, es imposible recrear el error que aparece.
readTableHead
es la función c que da el error. Intenta leer en las primeras n líneas (estándar las primeras 5) para determinar el tipo de datos. El resto de los datos se lee usandoscan()
. Entonces el problema es el formato del archivo.Una forma de averiguarlo es establecer el directorio de trabajo en el directorio donde está el archivo. De esa manera, verá la extensión del archivo que leyó. Sé que en Windows no se muestra de manera estándar, por lo que puede creer que es csv mientras no lo es.
Lo siguiente que debe hacer es abrir el archivo en el Bloc de notas o Wordpad (u otro editor) y verificar que el formato sea equivalente a mi archivo
test.csv
:Este archivo le dará el siguiente marco de datos:
El formato csv guardado por Excel separa todas las celdas con una coma. Las celdas vacías simplemente no tienen valor.
read.table()
puede lidiar con esto fácilmente y reconoce las celdas vacías sin problemas.fuente
Utilice
readLines()
(conwarn = FALSE
) para leer el archivo en un vector de caracteres primero.Después de eso, use la
text =
opción para leer el vector en un marco de datos conread.table()
fuente
Me di cuenta de que se han proporcionado varias respuestas, pero aún no hay una solución real.
El motivo, como se mencionó anteriormente, es que falta un "Fin de línea" al final del archivo CSV.
Si bien la solución real debería provenir de Microsoft, el camino es abrir el archivo CSV con un editor de texto y agregar una línea al final del archivo (también conocido como presionar la tecla de retorno). Utilizo el software ATOM como editor de texto / código, pero prácticamente cualquier editor de texto básico funcionaría.
Mientras tanto, informe el error a Microsoft.
Pregunta: Me parece que es un problema de Office 2016. ¿Alguien tiene el problema en una PC?
fuente
Recibí el mismo mensaje. Mi solución incluyó: eliminé todas las hojas adicionales (pestañas) en el archivo .csv, eliminé los caracteres no numéricos, volví a guardar el archivo como delimitado por comas y lo cargué en R v 2.15.0 usando un lenguaje estándar:
Como medida de seguridad adicional, cerré el software y lo volví a abrir antes de cargar el csv.
fuente
En varias configuraciones regionales europeas, como el carácter de coma sirve como punto decimal, se debe usar la función read.csv2 en su lugar.
fuente
He resuelto este problema al cambiar la codificación en el argumento read.table de fileEncoding = "UTF-16" a fileEncoding = "UTF-8".
fuente
El problema que estás describiendo se me ocurrió cuando cambié el nombre de un
.xlsx
as.csv
.Lo que me solucionó fue "Guardar como" y luego guardarlo como de
.csv
nuevo.fuente
Tuve este problema una vez cuando tenía una cita simple como parte del encabezado. Cuando lo eliminé (es decir, renombré el encabezado de la columna respectiva de
Jimmy's data
aJimmys data
), la función no devolvió advertencias.fuente
Para solucionar este problema a través de R, utilicé en
read.xlsx(..)
lugar de unread.csv()
. ¡¡Funciona de maravilla!! Ni siquiera tiene que cambiar el nombre. Cambiar el nombre de un xlsx a csv no es una solución viable.fuente
Abra el archivo en text wrangler o notepad ++ y muestre el formato, por ejemplo, en text wrangler muestra invisibles. De esa manera, puede ver la nueva línea o los caracteres de las pestañas. A menudo, Excel agregará todo tipo de pestañas en los lugares incorrectos y no un último carácter de línea nueva, pero debe mostrar los símbolos para ver esto.
fuente
Mi solución fue que abrí el
csv
archivo en un editor de texto, eliminé las comas excesivas en el último valor y luego guardé el archivo. Por ejemplo para el siguiente archivoQuite las comas después de 6, luego guarde el archivo.
fuente
Experimenté un problema similar, sin embargo, esto parece una advertencia genérica y, de hecho, es posible que no esté relacionado con el carácter de final de línea. En mi caso estaba dando este error porque el archivo que estaba usando contenía caracteres cirílicos, una vez que los reemplacé por caracteres latinos, el error desapareció.
fuente
Probé diferentes soluciones, como usar un editor de texto para insertar una nueva línea y obtener el carácter de final de línea como se recomienda en la respuesta superior anterior. Ninguno de estos funcionó, desafortunadamente.
La solución que finalmente funcionó para mí fue muy simple: copié y pegué el contenido de un archivo CSV en un nuevo archivo CSV en blanco, lo guardé y el problema desapareció.
fuente