Joan Giménez Verdugo
2016-Jul-28 11:53 UTC
[R-es] Eliminar filas al principio y final de un .csv en R
Hola a todos, tengo 170 .csv donde tengo que eliminar las primeras 20 lineas (primer bloque) y luego todo un último bloque de datos (tercer bloque) que está separado por dos filas sin datos del segundo bloque (que es el que me interesa). El tercer bloque empieza en cada .csv en una linea diferente por lo tanto no se si puedo automatizar en R quedarme tan solo con la información a partir de la linea 21 y luego solo hasta la siguiente linea en blanco que es donde empieza el tercer bloque (que será diferente en cada .csv). Muchas gracias de antemano. Joan -- *Joan Giménez Verdugo* *PhD Student* *Severo Ochoa* Estación Biológica de Doñana (EBD-CSIC) Department of Conservation Biology Americo Vespucio Ave, s/n 41092 Sevilla (Spain) www.ebd.csic.es --- Research Gate: Joan Giménez <https://www.researchgate.net/profile/Joan_Gimenez2> Phone: +34 619 176 849 ü Please consider the environment before printing this E-mail [[alternative HTML version deleted]]
Carlos Ortega
2016-Jul-28 15:00 UTC
[R-es] Eliminar filas al principio y final de un .csv en R
Hola, Se me ocurre esta solución en pseudo-código...: 1. Coges el primer fichero para procesar. 2. Con read.table indicas que salte esas primeras 20 líneas. Hay un parámetro que permite hacer esto (skip). 3. Cargas todo el fichero restante. 4. Identificas el data.frame donde están esas líneas en blanco que separan el segundo del tercer bloque. 5. Borras todo lo que está por debajo de esas líneas, quedándote ya con el bloque dos. 6. Guardo en un data.frame temporal el bloque dos. 7. Vuelvo al principio cogiendo otro fichero y aplicando la misma lógica y al llegar al punto 6 añado al data.frame temporal el nuevo segundo bloque. Si trabajas sobre Linux/Mac puedes hacer todo esto en una shell, con algo como "awk". Saltas las primeras 20 líneas en blanco, lees las líneas siguientes del fichero hasta que te encuentras una línea en blanco, donde paras el bucle y guardas en un fichero el bloque dos. Vuelves a iterar en el bucle y al encontrar nuevamente la línea en blanco, salvas (añadiendo) las líneas en el fichero anterior. Saludos, Carlos Ortega www.qualityexcellence.es El 28 de julio de 2016, 13:53, Joan Giménez Verdugo <joan.gimenez en csic.es> escribió:> Hola a todos, > > tengo 170 .csv donde tengo que eliminar las primeras 20 lineas (primer > bloque) y luego todo un último bloque de datos (tercer bloque) que está > separado por dos filas sin datos del segundo bloque (que es el que me > interesa). El tercer bloque empieza en cada .csv en una linea diferente por > lo tanto no se si puedo automatizar en R quedarme tan solo con la > información a partir de la linea 21 y luego solo hasta la siguiente linea > en blanco que es donde empieza el tercer bloque (que será diferente en cada > .csv). > > Muchas gracias de antemano. > > Joan > > -- > *Joan Giménez Verdugo* > *PhD Student* *Severo Ochoa* > Estación Biológica de Doñana (EBD-CSIC) > Department of Conservation Biology > Americo Vespucio Ave, s/n > 41092 Sevilla (Spain) > www.ebd.csic.es > --- > Research Gate: Joan Giménez > <https://www.researchgate.net/profile/Joan_Gimenez2> > Phone: +34 619 176 849 > ü Please consider the environment before printing this E-mail > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Joan Giménez Verdugo
2016-Jul-28 16:07 UTC
[R-es] Eliminar filas al principio y final de un .csv en R
Muchas gracias Carlos, la lógica es perfecta pero no se como identificar con código las lineas en blanco entre el bloque 2 y el bloque 3. Para de esta forma quedarme solo con el bloque 2. Tienes alguna idea? Muchas gracias. Joan 2016-07-28 17:00 GMT+02:00 Carlos Ortega <cof en qualityexcellence.es>:> Hola, > > Se me ocurre esta solución en pseudo-código...: > > > 1. Coges el primer fichero para procesar. > 2. Con read.table indicas que salte esas primeras 20 líneas. Hay un > parámetro que permite hacer esto (skip). > 3. Cargas todo el fichero restante. > 4. Identificas el data.frame donde están esas líneas en blanco que > separan el segundo del tercer bloque. > 5. Borras todo lo que está por debajo de esas líneas, quedándote ya > con el bloque dos. > 6. Guardo en un data.frame temporal el bloque dos. > 7. Vuelvo al principio cogiendo otro fichero y aplicando la misma > lógica y al llegar al punto 6 añado al data.frame temporal el nuevo segundo > bloque. > > Si trabajas sobre Linux/Mac puedes hacer todo esto en una shell, con algo > como "awk". Saltas las primeras 20 líneas en blanco, lees las líneas > siguientes del fichero hasta que te encuentras una línea en blanco, donde > paras el bucle y guardas en un fichero el bloque dos. Vuelves a iterar en > el bucle y al encontrar nuevamente la línea en blanco, salvas (añadiendo) > las líneas en el fichero anterior. > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > > El 28 de julio de 2016, 13:53, Joan Giménez Verdugo <joan.gimenez en csic.es> > escribió: > >> Hola a todos, >> >> tengo 170 .csv donde tengo que eliminar las primeras 20 lineas (primer >> bloque) y luego todo un último bloque de datos (tercer bloque) que está >> separado por dos filas sin datos del segundo bloque (que es el que me >> interesa). El tercer bloque empieza en cada .csv en una linea diferente >> por >> lo tanto no se si puedo automatizar en R quedarme tan solo con la >> información a partir de la linea 21 y luego solo hasta la siguiente linea >> en blanco que es donde empieza el tercer bloque (que será diferente en >> cada >> .csv). >> >> Muchas gracias de antemano. >> >> Joan >> >> -- >> *Joan Giménez Verdugo* >> *PhD Student* *Severo Ochoa* >> Estación Biológica de Doñana (EBD-CSIC) >> Department of Conservation Biology >> Americo Vespucio Ave, s/n >> 41092 Sevilla (Spain) >> www.ebd.csic.es >> --- >> Research Gate: Joan Giménez >> <https://www.researchgate.net/profile/Joan_Gimenez2> >> Phone: +34 619 176 849 >> ü Please consider the environment before printing this E-mail >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >-- *Joan Giménez Verdugo* *PhD Student* *Severo Ochoa* Estación Biológica de Doñana (EBD-CSIC) Department of Conservation Biology Americo Vespucio Ave, s/n 41092 Sevilla (Spain) www.ebd.csic.es --- Research Gate: Joan Giménez <https://www.researchgate.net/profile/Joan_Gimenez2> Phone: +34 619 176 849 ü Please consider the environment before printing this E-mail [[alternative HTML version deleted]]