Tengo una separada por comas conjunto de datos de alrededor de 10.000 filas. Cuando se hace la lectura.csv, R creado un dataframe filas menor a la del archivo original. Excluido y rechazado 200 filas.
Cuando abro el archivo csv en Excel, el archivo se ve bien. El archivo está bien formateada para la línea delimitadores y también los delimitadores de campo (según el análisis realizado por Excel).

He identificado los números de fila en mi archivo que está recibiendo rechazado, pero lo que no puede identificar la causa echando sobre ellos.

¿Hay alguna manera de ver los registros o algo que incluye la razón por la que R rechazó estos registros?

  • Son 200 rechaza distribuyen al azar en todo, o son co-ubicado en un área en particular de sus datos? Has visto http://stackoverflow.com/questions/13706188/importing-csv-file-into-r-numeric-values-read-as-characters
  • Están en una zona de datos. Son registros continuos
  • A diferencia del caso presentado en el enlace que has compartido, no he hecho ningún manipulaciones de datos en Excel. Abrí datos en bruto de R. yo sólo había abierto los datos en Excel para ver que analiza.. no alterar el archivo.
  • Por favor, podrías abrir el archivo csv en un archivo de texto y copiar algunas de las líneas a su cargo. También por favor incluya el código exacto que utiliza para leer los datos en R
  • Algunas conjeturas: algo va mal con comillas (tiene un sin escape cita en algún lugar, probablemente en la línea justo antes de las líneas que son omitidos); las líneas que comienzan con un #.
  • Jan van der Laan era correcta. Los registros rechazados fue debido a la presencia de dobles comillas en el archivo csv. Jan, por favor, seguir adelante y añadir que como la respuesta. Usted merece el crédito. Sin embargo, no estoy seguro de cómo quitar las comillas uso de R antes de la aplicación de lectura.csv(). Alguien me puede ayudar con eso? En la actualidad, que me quita las comillas dobles en el bloc de notas++ pero me gustaría hacer ese paso en R.
  • No estoy seguro de cómo me encontré compartir los datos. Incluso si quiero compartir un registro, es demasiado largo de un texto y se mete en el cuadro de texto en stackoverflow. Yo no veo ninguna manera de adjuntar un archivo. De todos modos, el problema ha sido reconocido y mencionado en el comentario anterior

InformationsquelleAutor user3422637 | 2014-09-29

4 Comentarios

  1. 8

    El OP indica que el problema es causado por cotizaciones en el archivo CSV -.

    Cuando los registros en el archivo CSV-no cotizan, pero sólo unos pocos registros contienen comillas. El archivo se puede abrir mediante el quote="" opción en read.csv. Esto deshabilita comillas.

    data <- read.csv(filename, quote="")

    Otra solución es eliminar todas las citas de el archivo, pero esto resulta en la modificación de datos (las cadenas que no contienen ninguna cita más) y va a dar problemas de sus campos de contener comas del.

    lines <- readLines(filename)
    lines <- gsub('"', '', lines, fixed=TRUE)
    data <- read.csv(textConnection(lines))

    Un poco más seguro de la solución, que sólo elimina las comillas cuando no justo antes o después de una coma:

    lines <- readLines(filename)
    lines <- gsub('([^,])"([^,])', '\1""\2', lines)
    data <- read.csv(textConnection(lines))
  2. 1

    Los registros rechazados fue debido a la presencia de dobles comillas en el archivo csv. Me quita las comillas dobles en el bloc de notas++ antes de leer el archivo en R. Si usted puede pensar en una mejor manera de eliminar la doble cita en R (antes de leer el archivo), por favor deje un comentario más abajo.

    Señalado por Jan van der Laan. Él se merece el crédito.

  3. 1

    Tuve el mismo problema en el que la diferencia entre el número de filas presente en archivo csv y el número de filas que lee read.csv() comando fue significativa. He utilizado fread() comando de data.table paquete en lugar de leer.csv y resolvió el problema.

  4. 0

    En su última pregunta de la que desea quitar las comillas dobles (que es «») antes de leer el archivo csv en el R. probablemente Esto se hace mejor como un archivo de preprocesamiento de paso mediante una línea de Shell scripting «sed» comentario (tratado en el Unix & Linux en el foro).

    sed -i 's/""/"/g' test.csv

Dejar respuesta

Please enter your comment!
Please enter your name here