José Luis La forma de Isidro Hidalgo Arellano es buena y clara, básicamente es lo mismo, uno propone sumar y el otro restar, pero en ambas alternativas hay un problema, utilizando el ejemplo de Isidro, tengo tres clases, digamos que gasté las tres, pero las gasté antes de recorrer todos los datos, por ejemplo tengo 1000 datos y en el 750 fueron utilizadas todas las clases, me quedarían 250 datos que se descartarían.
Javier Rubén Marcuzzi El 7 de marzo de 2018, 9:00, Isidro Hidalgo Arellano <[email protected]> escribió: > Una forma sería ésta: > > > > > datos > > GRUPO ORDEN CLASE > > 1 A 1 CLASE-01 > > 2 A 2 CLASE-02 > > 3 A 5 CLASE-03 > > 4 B 1 CLASE-01 > > 5 B 2 CLASE-02 > > 6 B 5 CLASE-03 > > 7 B 7 CLASE-04 > > 8 C 2 CLASE-02 > > 9 C 5 CLASE-03 > > 10 C 7 CLASE-04 > > 11 D 5 CLASE-03 > > 12 D 7 CLASE-04 > > 13 E 1 CLASE-06 > > 14 F 2 CLASE-02 > > 15 F 5 CLASE-03 > > 16 F 7 CLASE-05 > > 17 G 1 CLASE-07 > > > clases = attr(table(datos$CLASE), "names") > > > grupos = attr(table(datos$GRUPO), "names") > > > datosFinal = datos[1,] > > > clases = clases[-1] > > > grupos = grupos[-1] > > > for (g in grupos){ > > + selec = datos[datos$GRUPO ==g & datos$CLASE %in% clases,] > > + selec = selec[1,] > > + clases = clases[clases != selec$CLASE] > > + datosFinal = rbind(datosFinal, selec) > > + } > > > datosFinal > > GRUPO ORDEN CLASE > > 1 A 1 CLASE-01 > > 5 B 2 CLASE-02 > > 9 C 5 CLASE-03 > > 12 D 7 CLASE-04 > > 13 E 1 CLASE-06 > > 16 F 7 CLASE-05 > > 17 G 1 CLASE-07 > > > > Básicamente es montar un cola con las clases para ir quitándole el valor > que va saliendo en cada grupo. > > > > Un saludo > > > > Isidro Hidalgo Arellano > > Observatorio del Mercado de Trabajo > > Consejería de Economía, Empresas y Empleo > > http://www.castillalamancha.es/ > > > > > > > > De: R-help-es [mailto:[email protected]] En nombre de jose > luis via R-help-es > Enviado el: miércoles, 07 de marzo de 2018 12:01 > Para: jose luis <[email protected]>; Lista R. <[email protected]> > Asunto: Re: [R-es] Más filtrado de variables > > > > Adjunto txt por si no se ve bien, disculpas > > > > El Miércoles 7 de marzo de 2018 11:53, jose luis via R-help-es < > [email protected] <mailto:[email protected]> > escribió: > > > > Buenas. A ver si a alguien se le ocurre cómo hacer este filtrado. Quiero > seleccionar para cada GRUPO el numero de ORDEN más pequeño (que podría ser > con wich.min(ORDEN)), pero sin que se repita la CLASE, de modo que si la > CLASE-01 salió en el primer GRUPO ya no salga más. > > > > GRUPO ORDEN CLASE A 1 CLASE-01 A > 2 CLASE-02 A 5 CLASE-03 B 1 CLASE-01 > B 2 CLASE-02 B 5 CLASE-03 B 7 > CLASE-04 C 2 CLASE-02 C 5 CLASE-03 C > 7 CLASE-04 D 5 CLASE-03 D 7 CLASE-04 > E 1 CLASE-06 F 2 CLASE-02 F 5 > CLASE-03 F 7 CLASE-05 G 1 CLASE-07 > Tendría que quedarme tal que así: > > GRUPO ORDEN CLASE A 1 CLASE-01 B > 2 CLASE-02 C 5 CLASE-03 D 7 > CLASE-04 E 1 CLASE-06 F 7 CLASE-05 > G 1 CLASE-07 > > Un saludo > > Jose Luis > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > [email protected] <mailto:[email protected]> > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > [email protected] > https://stat.ethz.ch/mailman/listinfo/r-help-es > [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
