[R-es] Más filtrado de variables

Carlos Ortega cof en qualityexcellence.es
Mie Mar 7 13:39:02 CET 2018


Ah, sorry, no había entendido lo de no repetir la primera clase.
¿En este caso con cuál habría que quedarse...?..

Otra forma de hacerlo más compacta (hasta aclarar el punto) es así:


Lines <- "   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"

DF <- read.table(textConnection(Lines), header = TRUE, as.is = TRUE)

library(data.table)
DT <- as.data.table(DF)
DT[, .SD[1], by="GRUPO"]

> DT[, .SD[1], by="GRUPO"]
   GRUPO ORDEN    CLASE
1:     A     1 CLASE-01
2:     B     1 CLASE-01
3:     C     2 CLASE-02
4:     D     5 CLASE-03
5:     E     1 CLASE-06
6:     F     2 CLASE-02
7:     G     1 CLASE-07



El 7 de marzo de 2018, 13:35, jose luis <pepeceb en yahoo.es> escribió:

> Tienes razón Javier, enseguida se me acaban las CLASES, tendría que
> descartar demasiadas.
> En el ejemplo de Carlos Ortega estaría perfecto si no se repitiera la
> primera CLASE-01.
> No se si tendré que tirar por otro lado...
>
>
> El Miércoles 7 de marzo de 2018 13:26, Carlos Ortega <
> cof en qualityexcellence.es> escribió:
>
>
> Hola,
>
> Aquí, tienes otra forma que es bastante sencilla de leer/entender...
>
>
> Lines <- "   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"
>
> library(dplyr)
> DF %>%
>   group_by(GRUPO) %>%
>   select(GRUPO, ORDEN, CLASE) %>%
>   filter(ORDEN == min(ORDEN))
>
>
> Y que produce este resultado...
>
> > library(dplyr)
> > DF %>%
> +   group_by(GRUPO) %>%
> +   select(GRUPO, ORDEN, CLASE) %>%
> +   filter(ORDEN == min(ORDEN))
> # A tibble: 7 x 3
> # Groups:   GRUPO [7]
>   GRUPO ORDEN CLASE
>   <chr> <int> <chr>
> 1 A         1 CLASE-01
> 2 B         1 CLASE-01
> 3 C         2 CLASE-02
> 4 D         5 CLASE-03
> 5 E         1 CLASE-06
> 6 F         2 CLASE-02
> 7 G         1 CLASE-07
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
>
>
> El 7 de marzo de 2018, 12:00, jose luis via R-help-es <
> r-help-es en r-project.org> escribió:
>
> 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 <
> r-help-es en r-project.org> 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
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/ listinfo/r-help-es
> <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
> <https://stat.ethz.ch/mailman/listinfo/r-help-es>
>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es