2011-07-06 14 views
13

Estoy tratando de leer un archivo csv orientado a columna en R como un marco de datos.read.csv row.names

la primera línea del archivo es de esta manera:

sDATE, sTIME,iGPS_ALT, ...

y luego cada línea adicional es una medida:

4/10/2011,2:15,78, ...

cuando trato de leer esto en R, a través de

d = read.csv('filename')

Aparece un error duplicado de row.names dado que R piensa que la primera columna de los datos son los nombres de las filas, y dado que todas las mediciones se tomaron el mismo día, los valores en la primera columna no cambian.

Si pongo en row.names = NULL en la llamada read.csv, me sale una columna extraña d$row.names que corresponde a la columna de SDATE, y todo está "desplazado" una columna hacia abajo, por lo d$sDATE tendría 2:15 en ella, no 4/10/2011 según sea necesario.

Si abro mi csv en excel, no hago nada y luego lo guardo, todo está bien. Tengo que procesar cientos de estos, por lo que guardar manualmente en excel no es algo que quiero. Si hay algo programáticamente que puedo hacer para preprocesar estas csv en python o de otra manera, sería genial.

+0

¿Qué pasa con la configuración 'row.names = 1: n', donde' n' es el número de filas en el archivo. – nullglob

+0

Resultados en un 'Error en read.table (file = file, header = header, sep = sep, quote = quote,: invalid 'row.names' specification' – nimish

+2

Pega las primeras líneas (y columnas) del csv archivo, por favor. –

Respuesta

29

read.csv solo se supone que hay nombres de fila si hay menos valores en el encabezado que en las otras filas. Entonces, de alguna manera, le falta un nombre de columna o tiene una columna adicional que no desea.

4

Es probable que tenga una columna extra.
Pero probablemente surja de una celda formateada (o columna de celdas) que en realidad está vacía, a la derecha de sus datos en su hoja de cálculo original.
Aquí está la clave: Excel guardará los campos vacíos en el archivo CSV para las celdas vacías formateadas en su hoja. Es por esto que probablemente tenga este problema: porque cuando abre el archivo CSV con Excel y lo vuelve a guardar, el problema con R desaparece.
Qué está pasando: cuando vuelve a colocar un archivo CSV en Excel, posteriormente ignorará las celdas vacías a la derecha o debajo de sus datos (ya que los archivos CSV no tienen formato).

Conclusión: tenga cuidado al guardar las hojas de cálculo formateadas como archivos CSV para usar con paquetes estadísticos. Formato parásito significa campos perdidos en el CSV.

0

Una posible razón puede ser una coma adicional al final de las líneas después de la línea del encabezado. Excel los ignora silenciosamente y los elimina al guardar.

por lo menos era el caso para mí

0

me enfrentaba a la misma cuestión. Que se resolvió mediante la adición de header=TRUE, como a continuación

tempdata <- read.csv("C:\\File.csv",header=TRUE) 

La primera columna, que era la columna de fecha quedó alineado correctamente.

Cuestiones relacionadas