Gracuas a todos!!! Por cierto, esta ya es de nota. Si quiero agregar una columna, y que cada 400 piezsa el valor se incremente en una unidad, es decir las 400 primeras, tendrian cada fila el valor 1. Las siguientes 400, 2, .... Lo he hecho con un for, pero va bastante lento: k<-1 for(i in 1:length(datos[,1])){ if(i%%400 == 0){k = k +1} datos[i,9] <- k; }> From: josea.bartolome en mineco.es > To: j.para.fernandez en hotmail.com; r-help-es en r-project.org > Subject: RE: [R-es] Borrar cada fila 400 > Date: Tue, 17 Nov 2015 14:22:14 +0000 > > Prueba con: > > Datos[-seq(from = 400, to=50000, by = 400), ] > > No necesitas un buche, para eliminar las filas. > > Un cordial saludo. > > -----Mensaje original----- > De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de Jesús Para Fernández > Enviado el: Tuesday, November 17, 2015 3:15 PM > Para: r-help-es en r-project.org > Asunto: [R-es] Borrar cada fila 400 > > Buenas, tengo un csv [csv final] con 50000 filas, que es uni?n de varios csv [csv particular]. > > Cada csv [csv particular] tiene en la ?ltima fila, la 400, una serie de valores que quiero eliminar, por lo que del [csv filan] quiero borrar la linea 400,800,1200,.... > > > Lo he intentado con un bucle for: > > for(i in 1:50000){ > if(i%%400 == 0) {datos[-i,]} > } > > > Pero no me funciona. Adem?s me han dicho que con apply puede ser mucho m?s eficiente el algoritmo. ?Alguna idea? > > Gracias > > > [[alternative HTML version deleted]] >[[alternative HTML version deleted]]
1 + floor(1:nrow(datos) / 400) Pura aritmética, de nuevo. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 17 de noviembre de 2015, 15:28, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió:> Gracuas a todos!!! > > Por cierto, esta ya es de nota. Si quiero agregar una columna, y que cada 400 piezsa el valor se incremente en una unidad, es decir las 400 primeras, tendrian cada fila el valor 1. Las siguientes 400, 2, .... > > Lo he hecho con un for, pero va bastante lento: > k<-1 > for(i in 1:length(datos[,1])){ > > if(i%%400 == 0){k = k +1} > datos[i,9] <- k; > > } > > >> From: josea.bartolome en mineco.es >> To: j.para.fernandez en hotmail.com; r-help-es en r-project.org >> Subject: RE: [R-es] Borrar cada fila 400 >> Date: Tue, 17 Nov 2015 14:22:14 +0000 >> >> Prueba con: >> >> Datos[-seq(from = 400, to=50000, by = 400), ] >> >> No necesitas un buche, para eliminar las filas. >> >> Un cordial saludo. >> >> -----Mensaje original----- >> De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de Jesús Para Fernández >> Enviado el: Tuesday, November 17, 2015 3:15 PM >> Para: r-help-es en r-project.org >> Asunto: [R-es] Borrar cada fila 400 >> >> Buenas, tengo un csv [csv final] con 50000 filas, que es uni?n de varios csv [csv particular]. >> >> Cada csv [csv particular] tiene en la ?ltima fila, la 400, una serie de valores que quiero eliminar, por lo que del [csv filan] quiero borrar la linea 400,800,1200,.... >> >> >> Lo he intentado con un bucle for: >> >> for(i in 1:50000){ >> if(i%%400 == 0) {datos[-i,]} >> } >> >> >> Pero no me funciona. Adem?s me han dicho que con apply puede ser mucho m?s eficiente el algoritmo. ?Alguna idea? >> >> Gracias >> >> >> [[alternative HTML version deleted]] >> > > [[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
Entiendo la logica pero no veo el como hacerlo. No se como implementar el 1+floor(1:nrow(datos)/400)) Gracias Jesús> Date: Tue, 17 Nov 2015 15:31:39 +0100 > Subject: Re: [R-es] Borrar cada fila 400 > From: cgb en datanalytics.com > To: j.para.fernandez en hotmail.com > CC: josea.bartolome en mineco.es; r-help-es en r-project.org > > 1 + floor(1:nrow(datos) / 400) > > Pura aritmética, de nuevo. > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > El día 17 de noviembre de 2015, 15:28, Jesús Para Fernández > <j.para.fernandez en hotmail.com> escribió: > > Gracuas a todos!!! > > > > Por cierto, esta ya es de nota. Si quiero agregar una columna, y que cada 400 piezsa el valor se incremente en una unidad, es decir las 400 primeras, tendrian cada fila el valor 1. Las siguientes 400, 2, .... > > > > Lo he hecho con un for, pero va bastante lento: > > k<-1 > > for(i in 1:length(datos[,1])){ > > > > if(i%%400 == 0){k = k +1} > > datos[i,9] <- k; > > > > } > > > > > >> From: josea.bartolome en mineco.es > >> To: j.para.fernandez en hotmail.com; r-help-es en r-project.org > >> Subject: RE: [R-es] Borrar cada fila 400 > >> Date: Tue, 17 Nov 2015 14:22:14 +0000 > >> > >> Prueba con: > >> > >> Datos[-seq(from = 400, to=50000, by = 400), ] > >> > >> No necesitas un buche, para eliminar las filas. > >> > >> Un cordial saludo. > >> > >> -----Mensaje original----- > >> De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de Jesús Para Fernández > >> Enviado el: Tuesday, November 17, 2015 3:15 PM > >> Para: r-help-es en r-project.org > >> Asunto: [R-es] Borrar cada fila 400 > >> > >> Buenas, tengo un csv [csv final] con 50000 filas, que es uni?n de varios csv [csv particular]. > >> > >> Cada csv [csv particular] tiene en la ?ltima fila, la 400, una serie de valores que quiero eliminar, por lo que del [csv filan] quiero borrar la linea 400,800,1200,.... > >> > >> > >> Lo he intentado con un bucle for: > >> > >> for(i in 1:50000){ > >> if(i%%400 == 0) {datos[-i,]} > >> } > >> > >> > >> Pero no me funciona. Adem?s me han dicho que con apply puede ser mucho m?s eficiente el algoritmo. ?Alguna idea? > >> > >> Gracias > >> > >> > >> [[alternative HTML version deleted]] > >> > > > > [[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[[alternative HTML version deleted]]