Eric
2012-Jan-12 14:57 UTC
[R-es] Problema al eliminar filas desde un data.frame dentro de un ciclo for ...
Estimada comunidad tengo el siguiente problema: Tengo un data.frame con 5 columnas y 10.000 filas, tengo que eliminar todas las filas cuyo valor de la 5a columna sea 10.000 ... trato de hacer esto dentro de un ciclo for con el siguiente codigo: j <- 10000 for (i in 1:j) { if (dat12.23hex34_75_1col5[[i]]==10000) { dat12.23hex34_75_1col5 <- dat12.23hex34_75_1col5[[-i]] i <- i-1 j <- j-1 } } y obtengo el siguiente error: Error in dat12.23hex34_75_1col5[[-i]] : attempt to select more than one element la verdad es que nunca he hecho un ciclo for que me funciones, ni se bien como tratar los data.frame dentro de un ciclo for, por lo que no se bien que significa el error que obtengo ... he googleado obviamente, pero no encuentro observaciones que me conduzcan a una solucion de mi problema ... quiza puede haber otra forma en R de hacer esto ... alguna sugerencia por favor?? Muchas gracias a todos por su tiempo, Eric. -- Nota: las tildes se han omitido para evitar conflictos con algunos lectores de correo. * Un economista es un experto que sabrá mañana por qué las cosas que predijo ayer no han sucedido hoy (Laurence Peter). * SATYÂT NÂSTI PARO DHARMAH [[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2012-Jan-12 15:02 UTC
[R-es] Problema al eliminar filas desde un data.frame dentro de un ciclo for ...
Es que es mucho más simple que eso: dat <- dat[ dat[,5] != 10000,] resuelve tu problema. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 12 de enero de 2012 15:57, Eric <ericconchamunoz en gmail.com> escribió:> Estimada comunidad tengo el siguiente problema: > > Tengo un data.frame con 5 columnas y 10.000 filas, tengo que eliminar todas > las filas cuyo valor de la 5a columna sea 10.000 ... trato de hacer esto > dentro de un ciclo for con el siguiente codigo: > > j <- 10000 > for (i in 1:j) > { > if (dat12.23hex34_75_1col5[[i]]==10000) > { > dat12.23hex34_75_1col5 <- dat12.23hex34_75_1col5[[-i]] > i <- i-1 > j <- j-1 > } > } > > y obtengo el siguiente error: > > Error in dat12.23hex34_75_1col5[[-i]] : > attempt to select more than one element > > > la verdad es que nunca he hecho un ciclo for que me funciones, ni se bien > como tratar los data.frame dentro de un ciclo for, por lo que no se bien > que significa el error que obtengo ... he googleado obviamente, pero no > encuentro observaciones que me conduzcan a una solucion de mi problema ... > quiza puede haber otra forma en R de hacer esto ... > > alguna sugerencia por favor?? > > Muchas gracias a todos por su tiempo, > > Eric. > > > > > > -- > Nota: las tildes se han omitido para evitar conflictos con algunos lectores > de correo. > > * Un economista es un experto que sabrá mañana por qué las cosas que predijo > ayer no han sucedido hoy (Laurence Peter). > > * SATYÂT NÂSTI PARO DHARMAH > > [[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 >
Jorge I Velez
2012-Jan-12 15:04 UTC
[R-es] Problema al eliminar filas desde un data.frame dentro de un ciclo for ...
Hola Eric, Puedes usar indexacion. Si d son tus datos, algo como d[!is.na(d[, 5]), ] podria servirte. Saludos, Jorge.- 2012/1/12 Eric <>> Estimada comunidad tengo el siguiente problema: > > Tengo un data.frame con 5 columnas y 10.000 filas, tengo que eliminar todas > las filas cuyo valor de la 5a columna sea 10.000 ... trato de hacer esto > dentro de un ciclo for con el siguiente codigo: > > j <- 10000 > for (i in 1:j) > { > if (dat12.23hex34_75_1col5[[i]]==10000) > { > dat12.23hex34_75_1col5 <- dat12.23hex34_75_1col5[[-i]] > i <- i-1 > j <- j-1 > } > } > > y obtengo el siguiente error: > > Error in dat12.23hex34_75_1col5[[-i]] : > attempt to select more than one element > > > la verdad es que nunca he hecho un ciclo for que me funciones, ni se bien > como tratar los data.frame dentro de un ciclo for, por lo que no se bien > que significa el error que obtengo ... he googleado obviamente, pero no > encuentro observaciones que me conduzcan a una solucion de mi problema ... > quiza puede haber otra forma en R de hacer esto ... > > alguna sugerencia por favor?? > > Muchas gracias a todos por su tiempo, > > Eric. > > > > > > -- > Nota: las tildes se han omitido para evitar conflictos con algunos lectores > de correo. > > * Un economista es un experto que sabrá mañana por qué las cosas que > predijo > ayer no han sucedido hoy (Laurence Peter). > > * SATYÂT NÂSTI PARO DHARMAH > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]
Jorge I Velez
2012-Jan-12 15:06 UTC
[R-es] Problema al eliminar filas desde un data.frame dentro de un ciclo for ...
Lo siento, deberia ser d[ d[, 5] != 10000, ] o quizas subset(d, d[, 5] != 10000) Jorge.- 2012/1/12 Jorge I Velez <>> Hola Eric, > > Puedes usar indexacion. Si d son tus datos, algo como > > d[!is.na(d[, 5]), ] > > podria servirte. > > Saludos, > Jorge.- > > > 2012/1/12 Eric <> > >> Estimada comunidad tengo el siguiente problema: >> >> Tengo un data.frame con 5 columnas y 10.000 filas, tengo que eliminar >> todas >> las filas cuyo valor de la 5a columna sea 10.000 ... trato de hacer esto >> dentro de un ciclo for con el siguiente codigo: >> >> j <- 10000 >> for (i in 1:j) >> { >> if (dat12.23hex34_75_1col5[[i]]==10000) >> { >> dat12.23hex34_75_1col5 <- dat12.23hex34_75_1col5[[-i]] >> i <- i-1 >> j <- j-1 >> } >> } >> >> y obtengo el siguiente error: >> >> Error in dat12.23hex34_75_1col5[[-i]] : >> attempt to select more than one element >> >> >> la verdad es que nunca he hecho un ciclo for que me funciones, ni se bien >> como tratar los data.frame dentro de un ciclo for, por lo que no se bien >> que significa el error que obtengo ... he googleado obviamente, pero no >> encuentro observaciones que me conduzcan a una solucion de mi problema ... >> quiza puede haber otra forma en R de hacer esto ... >> >> alguna sugerencia por favor?? >> >> Muchas gracias a todos por su tiempo, >> >> Eric. >> >> >> >> >> >> -- >> Nota: las tildes se han omitido para evitar conflictos con algunos >> lectores >> de correo. >> >> * Un economista es un experto que sabrá mañana por qué las cosas que >> predijo >> ayer no han sucedido hoy (Laurence Peter). >> >> * SATYÂT NÂSTI PARO DHARMAH >> >> [[alternative HTML version deleted]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> >[[alternative HTML version deleted]]
Guillermo.Vinue en uv.es
2012-Jan-12 15:07 UTC
[R-es] Problema al eliminar filas desde un data.frame dentro de un ciclo for ...
Hola Eric, suponiendo que el data.frame se llame dat, creo que lo siguiente te serviría: dat[dat[,5] != 10000,] Un saludo, Guillermo> Estimada comunidad tengo el siguiente problema: > > Tengo un data.frame con 5 columnas y 10.000 filas, tengo que eliminartodas> las filas cuyo valor de la 5a columna sea 10.000 ... trato de hacer esto > dentro de un ciclo for con el siguiente codigo: > > j <- 10000 > for (i in 1:j) > { > if (dat12.23hex34_75_1col5[[i]]==10000) > { > dat12.23hex34_75_1col5 <- dat12.23hex34_75_1col5[[-i]] > i <- i-1 > j <- j-1 > } > } > > y obtengo el siguiente error: > > Error in dat12.23hex34_75_1col5[[-i]] : > attempt to select more than one element > > > la verdad es que nunca he hecho un ciclo for que me funciones, ni se bien > como tratar los data.frame dentro de un ciclo for, por lo que no se bien > que significa el error que obtengo ... he googleado obviamente, pero no > encuentro observaciones que me conduzcan a una solucion de mi problema .. . > quiza puede haber otra forma en R de hacer esto ... > > alguna sugerencia por favor?? > > Muchas gracias a todos por su tiempo, > > Eric. > > > > > > -- > Nota: las tildes se han omitido para evitar conflictos con algunoslectores> de correo. > > * Un economista es un experto que sabrá mañana por qué las cosas quepredijo> ayer no han sucedido hoy (Laurence Peter). > > * SATYÂT NÂSTI PARO DHARMAH > > [[alternative HTML version deleted]] > >