studio sirve read que procedimiento para libreria library leer importar datos dat con r header skip read.csv

sirve - read.csv, encabezado en primera línea, omita segunda línea



procedimiento para leer datos csv con r (2)

Tengo un archivo CSV con dos filas de encabezado, la primera fila quiero ser el encabezado, pero la segunda fila que quiero descartar. Si hago el siguiente comando:

data <- read.csv("HK Stocks bbg.csv", header = T, stringsAsFactors = FALSE)

La primera fila se convierte en el encabezado y la segunda fila del archivo se convierte en la primera fila de mi marco de datos:

Xaaaaaaaaa X X.1 Xbbbbbbbbbb X.2 X.3 1 Date PX_LAST NA Date PX_LAST NA 2 31/12/2002 38.855 NA 31/12/2002 19.547 NA 3 02/01/2003 38.664 NA 02/01/2003 19.547 NA 4 03/01/2003 40.386 NA 03/01/2003 19.547 NA 5 06/01/2003 40.386 NA 06/01/2003 19.609 NA 6 07/01/2003 40.195 NA 07/01/2003 19.609 NA

Quiero omitir esta segunda fila del archivo CSV y solo obtener

X1.HK.Equity X X.1 X2.HK.Equity X.2 X.3 2 31/12/2002 38.855 NA 31/12/2002 19.547 NA 3 02/01/2003 38.664 NA 02/01/2003 19.547 NA 4 03/01/2003 40.386 NA 03/01/2003 19.547 NA 5 06/01/2003 40.386 NA 06/01/2003 19.609 NA 6 07/01/2003 40.195 NA 07/01/2003 19.609 NA

Intenté data <- read.csv("HK Stocks bbg.csv", header = T, stringsAsFactors = FALSE, skip = 1) pero eso retorna:

Date PX_LAST X Date.1 PX_LAST.1 X.1 1 31/12/2002 38.855 NA 31/12/2002 19.547 NA 2 02/01/2003 38.664 NA 02/01/2003 19.547 NA 3 03/01/2003 40.386 NA 03/01/2003 19.547 NA 4 06/01/2003 40.386 NA 06/01/2003 19.609 NA 5 07/01/2003 40.195 NA 07/01/2003 19.609 NA 6 08/01/2003 40.386 NA 08/01/2003 19.547 NA

La fila del encabezado proviene de la segunda línea de mi archivo CSV, no de la primera línea.

Gracias.


Esto debería funcionar:

all_content = readLines("file.csv") skip_second = all_content[-2] dat = read.csv(textConnection(skip_second), header = TRUE, stringsAsFactors = FALSE)

El primer paso usando readLines lee todo el archivo en una lista, donde cada elemento de la lista representa una línea en el archivo. A continuación, descarta la segunda línea utilizando el hecho de que la indexación negativa en R significa select all but this index . Finalmente, alimentamos estos datos a read.csv para procesarlos en un data.frame .


Puede pelar las primeras líneas después del encabezado directamente desde el marco de datos, para permitirle hacer esto en una línea:

df<-read.csv("test.txt",header=T)[-1,]

si mi archivo de datos "test.txt" es el siguiente:

var1, var2 units1, units2 2.3,6.8 4.5,6.7

esto me da

> read.csv("test.txt",header=T)[-1,] var1 var2 2 2.3 6.8 3 4.5 6.7

Esto responde exactamente a su pregunta, pero solo para generalizar la respuesta, también puede omitir la N- ésima a la M- ésima línea de esta manera:

df<-read.csv("test.txt",header=T)[-N:-M,]

donde N y M son enteros, por supuesto.