studio - read csv para que sirve




read.csv, encabezado en primera línea, omita segunda línea (2)

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 .

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.


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.





read.csv