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]]
Hola Jesús, No es necesario un loop para ello. A continuación una idea utilizando seq(): datos[-seq(400, NROW(datos), by = 400), ] Saludos cordiales, Jorge Velez.- 2015-11-17 9:14 GMT-05:00 Jesús Para Fernández <j.para.fernandez en hotmail.com>:> 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]] > > > _______________________________________________ > 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]]
datos <- datos[ (1:nrow(datos) %% 400 != 0, ] Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 17 de noviembre de 2015, 15:14, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió:> 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]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es
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]]
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]]