Advertencia ‘Incomplete final line’ cuando intenta leer un archivo .csv en R

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 yo 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 comprende tres columnas de datos
  • cada columna de datos tiene una longitud diferente, es decir, hay una cantidad diferente de valores en cada columna
  • Quiero comparar los medios (utilizando t-test o equivalente dependiendo de la distribución normal / no normal) de dos de las columnas a la vez, por ejemplo, t-test entre los valores de la columna 1 y los valores de la columna 2, luego una t- prueba de valores de columna 1 y columna 3, etc.

¡Cualquier ayuda o sugerencia sería muy apreciada!

    El mensaje indica que la última línea del archivo no termina con un carácter de fin de línea (EOL) (avance de línea ( \n ) o retorno de carro + salto de línea ( \r\n )). La intención original de este mensaje fue advertirle que el archivo puede estar incompleto; la mayoría de los archivos de datos tienen un carácter EOL como el último carácter en el archivo.

    El remedio es simple:

    1. Abre el archivo
    2. Navega hasta la última línea del archivo
    3. Coloque el cursor al final de esa línea
    4. Presione regresar
    5. Guarda el archivo

    ¿De verdad está seguro de haber seleccionado el archivo .csv y no el archivo .xls? Solo puedo reproducir el error si trato de leer en un archivo .xls. Si trato de leer en un archivo .csv o cualquier otro archivo de texto, es imposible volver a crear el error que obtiene.

     > Data < - read.table("test.csv",header=T,sep=",") > Data < - read.table("test.xlsx",header=T,sep=",") Warning message: In read.table("test.xlsx", header = T, sep = ",") : incomplete final line found by readTableHeader on 'test.xlsx' 

    readTableHead es la función c que proporciona el error. Intenta leer en las primeras n líneas (estándar los primeros 5) para determinar el tipo de datos. El rest de los datos se leen usando scan() . 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 esta forma, verá la extensión del archivo que leyó. Sé que en Windows no se muestra como estándar, por lo que puede creer que es csv mientras que no lo es.

    Lo siguiente que debe hacer es abrir el archivo en el Bloc de notas o en el Wordpad (u otro editor) y verificar que el formato sea equivalente a mi archivo test.csv :

     Test1,Test2,Test3 1,1,1 2,2,2 3,3,3 4,4, 5,5, ,6, 

    Este archivo le dará el siguiente dataframe:

     > read.table(testfile,header=T,sep=",") Test1 Test2 Test3 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 NA 5 5 5 NA 6 NA 6 NA 

    El formato csv guardado por excel separa todas las celdas con una coma. Las celdas vacías simplemente no tienen un valor. read.table() puede tratar esto fácilmente, y reconoce las celdas vacías sin problemas.

    El problema es fácil de resolver; es porque la última línea DEBE estar vacía.

    Diga, si su contenido es

     line 1, line2 

    cambiarlo a

     line 1, line2 (empty line here) 

    Hoy encontré este amable problema, cuando estaba tratando de usar R para leer un archivo JSON, usando el comando “json_data < -fromJSON (pegar (readLines (" json01.json "), collapse =" "))"; y lo resuelvo por mi método anterior.

    Me di cuenta de que se han proporcionado varias respuestas, pero aún no hay una solución real.

    La razón, como se mencionó anteriormente, es que falta un “Fin de línea” al final del archivo CSV.

    Si bien la solución real debe provenir de Microsoft, el recorrido consiste en abrir el archivo CSV con un editor de texto y agregar una línea al final del archivo (es decir, presionar la tecla de retorno). Utilizo el software ATOM como editor de texto / código, pero prácticamente todo el editor de texto básico lo haría.

    Mientras tanto, informa el error a Microsoft.

    Pregunta: me parece que es un problema de oficina 2016 ¿Alguien tiene el problema en una PC?

    Recibí el mismo mensaje. Mi arreglo incluido: eliminé todas las hojas adicionales (tabs) en el archivo .csv, eliminé caracteres no numéricos, volví a guardar el archivo como delimitado por comas y cargué en R v 2.15.0 usando el lenguaje estándar:

    nombre de archivo < -read.csv ("nombre de archivo", encabezado = VERDADERO)

    Como salvaguarda adicional, cerré el software y volví a abrir antes de cargar el csv.

    En varias configuraciones regionales europeas, como el carácter de coma sirve como punto decimal, la función read.csv2 debe usarse en su lugar.

    He resuelto este problema cambiando la encoding en el argumento read.table de fileEncoding = “UTF-16” a fileEncoding = “UTF-8”.

    Obtuve este problema una vez cuando tenía una comilla simple como parte del encabezado. Cuando lo eliminé (es decir, renombré el encabezado de columna correspondiente de Jimmy's data de Jimmy's data de Jimmys data ), la función no devolvió advertencias.

    El problema que está describiendo ocurrió cuando .xlsx a .xlsx como .csv .

    Lo que lo solucionó fue ir a “Guardar como” y luego guardarlo como .csv nuevamente.

    Abra el archivo en wrangler de texto o bloc de notas ++ y muestre el formateo, por ejemplo, en wrangler de texto que muestra invisibles. De esta forma, puede ver la nueva línea o los caracteres de las tabs. A menudo, Excel agregará todo tipo de tabs en los lugares incorrectos y no un último carácter de nueva línea, pero debe mostrar los símbolos para ver esto.

    Mi trabajo fue que abrí el archivo csv en un editor de texto, eliminé las comas excesivas en el último valor y luego guardé el archivo. Por ejemplo para el siguiente archivo

     Test1,Test2,Test3 1,1,1 2,2,2 3,3,3 4,4, 5,5, ,6,, 

    Quite las comas después de 6, luego guarde el archivo.

    He experimentado un problema similar, sin embargo, esto parece ser una advertencia genérica, y puede que de hecho no esté relacionado con el carácter de fin 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é con caracteres latinos, el error desapareció.

    Utilice readLines() (con warn = FALSE ) para leer primero el archivo en un vector de caracteres.

    Después de eso, use la opción text = para leer el vector en un dataframe con read.table()

      pheasant < - read.table( text = readLines(file.choose(), warn = FALSE), header = TRUE, sep = "," ) 

    Para solucionar este problema a través de R, acabo de usar read.xlsx(..) lugar de read.csv() . ¡¡Funciona de maravilla!! Ni siquiera tiene que cambiar el nombre. Renombrar un xlsx en csv no es una solución viable.

    Probé diferentes soluciones, como usar un editor de texto para insertar una nueva línea y obtener el carácter de fin de línea como se recomienda en la respuesta superior anterior. Ninguno de estos funcionó, por desgracia.

    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ó.