Jorge Ayuso Rejas
2014-Sep-11 12:46 UTC
[R-es] separar un archivo por años en diferentes archivos
Otra manera sería usar la función split. Que devuelve una lista de data.frame. Para expotar luego cada elemento puedes usar lapply, ejemplo: data(iris) lista<-split(iris,iris$Species) lapply(names(lista),function(x) write.table(x = lista[[x]],file paste0(x,".txt")) ) Saludos El 11 de septiembre de 2014, 14:44, Isidro Hidalgo <ihidalgo en jccm.es> escribió:> ¿En qué formato está: texto plano, separado por tabulaciones, de anchura > fija, EXCEL? ¿No puedes leerlo entero, filtrar por año y grabar cada parte? > Un saludo > > Isidro Hidalgo Arellano > Observatorio Regional de Empleo > Consejería de Empleo y Economía > http://www.jccm.es > > > > > -----Mensaje original----- > > De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r- > > project.org] En nombre de Marta valdes lopez > > Enviado el: jueves, 11 de septiembre de 2014 14:33 > > Para: r-help-es en r-project.org > > Asunto: [R-es] separar un archivo por años en diferentes archivos > > > > Hola a todos, > > > > Tengo un archivo que va desde el año 2002 hasta el 2010; lo que quiero > > hacer es separar ese archivo por años.Crear un archivo para cada año, > > alguien sabe como podria hacerlo? > > > > Muchas gracias, un saludo > > > > [[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 > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Jorge Ayuso Rejas [[alternative HTML version deleted]]
Marta valdes lopez
2014-Sep-11 15:18 UTC
[R-es] separar un archivo por años en diferentes archivos
Hola Muchas gracias por la respuesta,intente esto: filename<-"fishing.csv" DBa<-read.csv(filename,sep=",",header=TRUE) anios<-unique(DBa$Year) for(i in 1:length(anios)) { dattmp<-DBa[DBa$Year==anios [i], write.table(dattmp,file=paste(i,".txt",sep="")) } Pero no me salieron los diferentes archivos por cada año, me salieron dos sin nada en ellos.Adjunto una parte del archivo para que veais como es el archivo. Muchas gracias por vuestro tiempo, un saludo El 11 de septiembre de 2014, 14:46, Jorge Ayuso Rejas <jayusor en gmail.com> escribió:> Otra manera sería usar la función split. Que devuelve una lista de > data.frame. > Para expotar luego cada elemento puedes usar lapply, ejemplo: > > data(iris) > lista<-split(iris,iris$Species) > lapply(names(lista),function(x) write.table(x = lista[[x]],file > paste0(x,".txt")) ) > > Saludos > > > El 11 de septiembre de 2014, 14:44, Isidro Hidalgo <ihidalgo en jccm.es> > escribió: > > > ¿En qué formato está: texto plano, separado por tabulaciones, de anchura > > fija, EXCEL? ¿No puedes leerlo entero, filtrar por año y grabar cada > parte? > > Un saludo > > > > Isidro Hidalgo Arellano > > Observatorio Regional de Empleo > > Consejería de Empleo y Economía > > http://www.jccm.es > > > > > > > > > -----Mensaje original----- > > > De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r- > > > project.org] En nombre de Marta valdes lopez > > > Enviado el: jueves, 11 de septiembre de 2014 14:33 > > > Para: r-help-es en r-project.org > > > Asunto: [R-es] separar un archivo por años en diferentes archivos > > > > > > Hola a todos, > > > > > > Tengo un archivo que va desde el año 2002 hasta el 2010; lo que quiero > > > hacer es separar ese archivo por años.Crear un archivo para cada año, > > > alguien sabe como podria hacerlo? > > > > > > Muchas gracias, un saludo > > > > > > [[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 > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > -- > Jorge Ayuso Rejas > > [[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 >------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20140911/47b69fbe/attachment-0001.html> ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: test1.csv Type: text/csv Size: 107573 bytes Desc: no disponible URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20140911/47b69fbe/attachment-0001.bin>
Si bien prefiero algo como lo propuesto por Jorge, siguiendo tu planteo creo que lo siguiente tiene que funcionar: filename<-"test1.csv" DBa<-read.table(filename,sep=";",header=TRUE) # en el archivo que enviastes el separador es ; no , anios<-unique(DBa$Year) for(i in anios) { # si escribes i in 1:anios el valor de i es de 1, 2, ... etc dattmp<-DBa[DBa$Year==i ,] write.table(dattmp,file=paste(i,".txt",sep="")) } Espero sirva, Daniel Merino El 11 de septiembre de 2014, 12:18, Marta valdes lopez < martavaldes85 en gmail.com> escribió:> Hola > > Muchas gracias por la respuesta,intente esto: > > filename<-"fishing.csv" > DBa<-read.csv(filename,sep=",",header=TRUE) > anios<-unique(DBa$Year) > for(i in 1:length(anios)) { > dattmp<-DBa[DBa$Year==anios [i], > write.table(dattmp,file=paste(i,".txt",sep="")) > } > > Pero no me salieron los diferentes archivos por cada año, me salieron dos > sin nada en ellos.Adjunto una parte del archivo para que veais como es el > archivo. > > Muchas gracias por vuestro tiempo, un saludo > > El 11 de septiembre de 2014, 14:46, Jorge Ayuso Rejas <jayusor en gmail.com> > escribió: > > Otra manera sería usar la función split. Que devuelve una lista de >> data.frame. >> Para expotar luego cada elemento puedes usar lapply, ejemplo: >> >> data(iris) >> lista<-split(iris,iris$Species) >> lapply(names(lista),function(x) write.table(x = lista[[x]],file >> paste0(x,".txt")) ) >> >> Saludos >> >> >> El 11 de septiembre de 2014, 14:44, Isidro Hidalgo <ihidalgo en jccm.es> >> escribió: >> >> > ¿En qué formato está: texto plano, separado por tabulaciones, de anchura >> > fija, EXCEL? ¿No puedes leerlo entero, filtrar por año y grabar cada >> parte? >> > Un saludo >> > >> > Isidro Hidalgo Arellano >> > Observatorio Regional de Empleo >> > Consejería de Empleo y Economía >> > http://www.jccm.es >> > >> > >> > >> > > -----Mensaje original----- >> > > De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r- >> > > project.org] En nombre de Marta valdes lopez >> > > Enviado el: jueves, 11 de septiembre de 2014 14:33 >> > > Para: r-help-es en r-project.org >> > > Asunto: [R-es] separar un archivo por años en diferentes archivos >> > > >> > > Hola a todos, >> > > >> > > Tengo un archivo que va desde el año 2002 hasta el 2010; lo que >> quiero >> > > hacer es separar ese archivo por años.Crear un archivo para cada año, >> > > alguien sabe como podria hacerlo? >> > > >> > > Muchas gracias, un saludo >> > > >> > > [[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 >> > >> > _______________________________________________ >> > R-help-es mailing list >> > R-help-es en r-project.org >> > https://stat.ethz.ch/mailman/listinfo/r-help-es >> > >> >> >> >> -- >> Jorge Ayuso Rejas >> >> [[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 >> > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Daniel [[alternative HTML version deleted]]
Hola: En casos como estos no hay que olvidar que el sistema operativo un+x, olvidé casi todo los que sabía del /command/ de microsoft, nos ofrece procedimienetos muy simples para realizar tareas rutinarias. En este caso creo que lo más rápido es, dede una terminal, en el directorio de datos: |grep "/2003;" test1.csv >t2003.csv| Espero que te sea útil El 11/09/14 a las #4, Marta valdes lopez escribió:> Hola > > Muchas gracias por la respuesta,intente esto: > > filename<-"fishing.csv" > DBa<-read.csv(filename,sep=",",header=TRUE) > anios<-unique(DBa$Year) > for(i in 1:length(anios)) { > dattmp<-DBa[DBa$Year==anios [i], > write.table(dattmp,file=paste(i,".txt",sep="")) > } > > Pero no me salieron los diferentes archivos por cada año, me salieron > dos sin nada en ellos.Adjunto una parte del archivo para que veais > como es el archivo. > > Muchas gracias por vuestro tiempo, un saludo > > El 11 de septiembre de 2014, 14:46, Jorge Ayuso Rejas > <jayusor en gmail.com <mailto:jayusor en gmail.com>> escribió: > > Otra manera sería usar la función split. Que devuelve una lista de > data.frame. > Para expotar luego cada elemento puedes usar lapply, ejemplo: > > data(iris) > lista<-split(iris,iris$Species) > lapply(names(lista),function(x) write.table(x = lista[[x]],file > paste0(x,".txt")) ) > > Saludos > > > El 11 de septiembre de 2014, 14:44, Isidro Hidalgo > <ihidalgo en jccm.es <mailto:ihidalgo en jccm.es>> > escribió: > > > ¿En qué formato está: texto plano, separado por tabulaciones, de > anchura > > fija, EXCEL? ¿No puedes leerlo entero, filtrar por año y grabar > cada parte? > > Un saludo > > > > Isidro Hidalgo Arellano > > Observatorio Regional de Empleo > > Consejería de Empleo y Economía > > http://www.jccm.es > > > > > > > > > -----Mensaje original----- > > > De: r-help-es-bounces en r-project.org > <mailto:r-help-es-bounces en r-project.org> > [mailto:r-help-es-bounces en r- <mailto:r-help-es-bounces en r-> > > > project.org <http://project.org>] En nombre de Marta valdes lopez > > > Enviado el: jueves, 11 de septiembre de 2014 14:33 > > > Para: r-help-es en r-project.org <mailto:r-help-es en r-project.org> > > > Asunto: [R-es] separar un archivo por años en diferentes archivos > > > > > > Hola a todos, > > > > > > Tengo un archivo que va desde el año 2002 hasta el 2010; lo > que quiero > > > hacer es separar ese archivo por años.Crear un archivo para > cada año, > > > alguien sabe como podria hacerlo? > > > > > > Muchas gracias, un saludo > > > > > > [[alternative HTML version deleted]] > > > > > > _______________________________________________ > > > R-help-es mailing list > > > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > -- > Jorge Ayuso Rejas > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es? [[alternative HTML version deleted]]
Carlos Ortega
2014-Sep-11 16:16 UTC
[R-es] separar un archivo por años en diferentes archivos
Hola Marta, Si el código exacto que utilizaste es el que has compartido, hay un error... Te falta cerrar un corchete. Y he incluido un detalle para que los ficheros tengan como nombre los años... ?#--------------------------? ??filename<-"test1.csv" DBa<-read.csv(filename,sep="*;*" ,header=TRUE) anios<-unique(DBa$Year) for(i in 1:length(anios)) { dattmp<-DBa[DBa$Year==anios[i],*]* write.table(dattmp,file=paste(*anios[i]*,".txt",sep="")) } ?#----------------------------- Y cuidado, que a la hora de leer el fichero ".csv", el separador es ";" y no "," como has puesto... Con estos cambios, he comprobado que funciona sin problemas... Saludos, Carlos. El 11 de septiembre de 2014, 17:18, Marta valdes lopez < martavaldes85 en gmail.com> escribió:> Hola > > Muchas gracias por la respuesta,intente esto: > > ?? > filename<-"fishing.csv" > DBa<-read.csv(filename,sep=",",header=TRUE) > anios<-unique(DBa$Year) > for(i in 1:length(anios)) { > dattmp<-DBa[DBa$Year==anios [i], > write.table(dattmp,file=paste(i,".txt",sep="")) > } > > Pero no me salieron los diferentes archivos por cada año, me salieron dos > sin nada en ellos.Adjunto una parte del archivo para que veais como es el > archivo. > > Muchas gracias por vuestro tiempo, un saludo > > El 11 de septiembre de 2014, 14:46, Jorge Ayuso Rejas <jayusor en gmail.com> > escribió: > > Otra manera sería usar la función split. Que devuelve una lista de >> data.frame. >> Para expotar luego cada elemento puedes usar lapply, ejemplo: >> >> data(iris) >> lista<-split(iris,iris$Species) >> lapply(names(lista),function(x) write.table(x = lista[[x]],file >> paste0(x,".txt")) ) >> >> Saludos >> >> >> El 11 de septiembre de 2014, 14:44, Isidro Hidalgo <ihidalgo en jccm.es> >> escribió: >> >> > ¿En qué formato está: texto plano, separado por tabulaciones, de anchura >> > fija, EXCEL? ¿No puedes leerlo entero, filtrar por año y grabar cada >> parte? >> > Un saludo >> > >> > Isidro Hidalgo Arellano >> > Observatorio Regional de Empleo >> > Consejería de Empleo y Economía >> > http://www.jccm.es >> > >> > >> > >> > > -----Mensaje original----- >> > > De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r- >> > > project.org] En nombre de Marta valdes lopez >> > > Enviado el: jueves, 11 de septiembre de 2014 14:33 >> > > Para: r-help-es en r-project.org >> > > Asunto: [R-es] separar un archivo por años en diferentes archivos >> > > >> > > Hola a todos, >> > > >> > > Tengo un archivo que va desde el año 2002 hasta el 2010; lo que >> quiero >> > > hacer es separar ese archivo por años.Crear un archivo para cada año, >> > > alguien sabe como podria hacerlo? >> > > >> > > Muchas gracias, un saludo >> > > >> > > [[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 >> > >> > _______________________________________________ >> > R-help-es mailing list >> > R-help-es en r-project.org >> > https://stat.ethz.ch/mailman/listinfo/r-help-es >> > >> >> >> >> -- >> Jorge Ayuso Rejas >> >> [[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 >> > > > _______________________________________________ > 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]]