Re: [R-es] Más filtrado de variables

2018-03-08 Por tema jose luis via R-help-es
Bueno, finalmente lo resolví así. Creé una nueva variable ORDEN2 con un ifelse 
que me señalase los duplicados de clase y luego selecciono los de menor ORDEN. 
Pierdo algunos registros de  GRUPO porque solo tienen duplicados, pero esto 
estaba dentro de lo previsto.Gracias por la ayuda!


Datos%>% mutate(ORDEN2= ifelse(duplicated(CLASE),ORDEN==FALSE,ORDEN)) 
Datos2<-subset(Datos,!ORDEN2==FALSE)%>%
group_by(GRUPO) %>%
 slice(which.min(ORDEN2))
Datos2

Datos2
  grupo ordenclase orden2
1 A 1 CLASE-01  1
2 B 7 CLASE-04  7
3 E 1 CLASE-06  1
4 F 7 CLASE-05  7
5 G 1 CLASE-07  1
 

El Miércoles 7 de marzo de 2018 13:51, Isidro Hidalgo Arellano 
<ihida...@jccm.es> escribió:
 

 #yiv2107649944 #yiv2107649944 -- _filtered #yiv2107649944 
{font-family:Helvetica;panose-1:2 11 6 4 2 2 2 2 2 4;} _filtered #yiv2107649944 
{panose-1:2 4 5 3 5 4 6 3 2 4;} _filtered #yiv2107649944 
{font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;} _filtered #yiv2107649944 
{panose-1:2 11 6 9 4 5 4 2 2 4;}#yiv2107649944 #yiv2107649944 
p.yiv2107649944MsoNormal, #yiv2107649944 li.yiv2107649944MsoNormal, 
#yiv2107649944 div.yiv2107649944MsoNormal 
{margin:0cm;margin-bottom:.0001pt;font-size:12.0pt;}#yiv2107649944 a:link, 
#yiv2107649944 span.yiv2107649944MsoHyperlink 
{color:blue;text-decoration:underline;}#yiv2107649944 a:visited, #yiv2107649944 
span.yiv2107649944MsoHyperlinkFollowed 
{color:purple;text-decoration:underline;}#yiv2107649944 pre 
{margin:0cm;margin-bottom:.0001pt;font-size:10.0pt;}#yiv2107649944 
span.yiv2107649944HTMLconformatoprevioCar {}#yiv2107649944 
span.yiv2107649944EstiloCorreo19 {color:#1F497D;}#yiv2107649944 
span.yiv2107649944gghfmyibcpb {}#yiv2107649944 span.yiv2107649944gghfmyibcob 
{}#yiv2107649944 span.yiv2107649944EstiloCorreo22 
{color:#1F497D;}#yiv2107649944 .yiv2107649944MsoChpDefault {font-size:10.0pt;} 
_filtered #yiv2107649944 {margin:70.85pt 3.0cm 70.85pt 3.0cm;}#yiv2107649944 
div.yiv2107649944WordSection1 {}#yiv2107649944 Perdona. A ver ahora:  > datos   
GRUPO ORDEN    CLASE1  A 1 CLASE-012  A 2 CLASE-023  A 
5 CLASE-034  B 1 CLASE-015  B 2 CLASE-026  B 5 
CLASE-037  B 7 CLASE-048  C 2 CLASE-029  C 5 CLASE-0310 
    C 7 CLASE-0411 D 5 CLASE-0312 D 7 CLASE-0413 E 
1 CLASE-0614 F 2 CLASE-0215 F 5 CLASE-0316 F 7 
CLASE-0517 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    CLASE1  A 1 CLASE-015  B 
2 CLASE-029  C 5 CLASE-0312 D 7 CLASE-0413 E 1 
CLASE-0616     F 7 CLASE-0517 G 1 CLASE-07    Un saludo  Isidro 
Hidalgo ArellanoObservatorio del Mercado de TrabajoConsejería de Economía, 
Empresas y Empleohttp://www.castillalamancha.es/    De: Isidro Hidalgo Arellano 
[mailto:ihida...@jccm.es] 
Enviado el: miércoles, 07 de marzo de 2018 13:00
Para: 'jose luis' <pepe...@yahoo.es>; 'r-help-es@r-project.org' 
<r-help-es@r-project.org>
Asunto: RE: [R-es] Más filtrado de variables  Una forma sería ésta:  > datos   
GRUPO ORDEN    CLASE1  A 1 CLASE-012  A 2 CLASE-023  A 
5 CLASE-034  B 1 CLASE-015  B 2 CLASE-026  B 5 
CLASE-037  B 7 CLASE-048  C 2 CLASE-029  C 5 CLASE-0310 
    C 7 CLASE-0411 D 5 CLASE-0312 D 7 CLASE-0413 E 
1 CLASE-0614 F 2 CLASE-0215 F 5 CLASE-0316 F 7 
CLASE-0517 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    CLASE1  A 1 CLASE-015  B 
2 CLASE-029  C 5 CLASE-0312 D 7 CLASE-0413 E 1 
CLASE-0616 F 7 CLASE-0517 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 ArellanoObservatorio del Mercado de 
TrabajoConsejería de Economía, Empresas y Empleohttp://www.castillalamancha.es/ 
     De: R-help-es [mailto:r-help-es-boun...@r-project.org] En nombre de jose 
luis via R-

Re: [R-es] Más filtrado de variables

2018-03-07 Por tema Isidro Hidalgo Arellano
Perdona. A ver ahora:

 

> datos

   GRUPO ORDENCLASE

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 ORDENCLASE

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

 

 

Un saludo

 

Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejería de Economía, Empresas y Empleo

http://www.castillalamancha.es/

 

 

De: Isidro Hidalgo Arellano [mailto:ihida...@jccm.es] 
Enviado el: miércoles, 07 de marzo de 2018 13:00
Para: 'jose luis' <pepe...@yahoo.es>; 'r-help-es@r-project.org' 
<r-help-es@r-project.org>
Asunto: RE: [R-es] Más filtrado de variables

 

Una forma sería ésta:

 

> datos

   GRUPO ORDENCLASE

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 ORDENCLASE

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:r-help-es-boun...@r-project.org] En nombre de jose luis 
via R-help-es
Enviado el: miércoles, 07 de marzo de 2018 12:01
Para: jose luis <pepe...@yahoo.es <mailto:pepe...@yahoo.es> >; Lista R. 
<r-help-es@r-project.org <mailto:r-help-es@r-project.org> >
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 
<r-help-es@r-project.org <mailto:r-help-es@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   ORDENCLASEA   1   CLASE-01A   2   
CLASE-02A   5   CLASE-03B   1   CLASE-01B   
2   CLASE-02B   5   CLASE-03B   7   CLASE-04C   
2   CLASE-02C   5   CLASE-03C   7   CLASE-04
D   5   CLASE-03D   7   CLASE-04E   1   CLASE-06
F   2   CLASE-02F   5   CLASE-03F   7   
CLASE-05G   1   CLASE-07
 Tendría que quedarme tal que así:

GRUPO ORDEN CLASEA   1   CLASE-01B   2  
 CLASE-02C   5   CLASE-03D   7   CLASE-04   
 E   1   CLASE-06F   7   CLASE-05G   1  
 CLASE-07

Un saludo

Jose Luis

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org <mailto:R-help-es@r-project.org> 
https://stat.ethz.ch/mailman/listinfo/r-help-es


[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Más filtrado de variables

2018-03-07 Por tema jose luis via R-help-es
Habría que quedarse para cada GRUPO con el ORDEN más pequeño posible pero 
siempre que la CLASE   no se haya ya seleccionado previamente.Lo más importante 
es intentar que haya una  CLASE exclusiva para cada GRUPO. 

El Miércoles 7 de marzo de 2018 13:39, Carlos Ortega 
 escribió:
 

 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    CLASE1      A     1 CLASE-012      A     2 
CLASE-023      A     5 CLASE-034      B     1 CLASE-015      B     2 CLASE-026  
    B     5 CLASE-037      B     7 CLASE-048      C     2 CLASE-029      C     
5 CLASE-0310     C     7 CLASE-0411     D     5 CLASE-0312     D     7 
CLASE-0413     E     1 CLASE-0614     F     2 CLASE-0215     F     5 CLASE-0316 
    F     7 CLASE-0517     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    CLASE1:     A     1 CLASE-012:     
> B     1 CLASE-013:     C     2 CLASE-024:     D     5 CLASE-035:     E     1 
> CLASE-066:     F     2 CLASE-027:     G     1 CLASE-07


El 7 de marzo de 2018, 13:35, jose luis  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 
 escribió:
 

 Hola,
Aquí, tienes otra forma que es bastante sencilla de leer/entender...

Lines <- "   GRUPO ORDEN    CLASE1      A     1 CLASE-012      A     2 
CLASE-023      A     5 CLASE-034      B     1 CLASE-015      B     2 CLASE-026  
    B     5 CLASE-037      B     7 CLASE-048      C     2 CLASE-029      C     
5 CLASE-0310     C     7 CLASE-0411     D     5 CLASE-0312     D     7 
CLASE-0413     E     1 CLASE-0614     F     2 CLASE-0215     F     5 CLASE-0316 
    F     7 CLASE-0517     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          1 A         1 CLASE-012 B         1 
> CLASE-013 C         2 CLASE-024 D         5 CLASE-035 E         1 CLASE-066 F 
>         2 CLASE-027 G         1 CLASE-07
Saludos,Carlos Ortegawww.qualityexcellence.es



El 7 de marzo de 2018, 12:00, jose luis via R-help-es  
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 
 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@r-project.org
https://stat.ethz.ch/mailman/ listinfo/r-help-es

   
__ _
R-help-es mailing list
R-help-es@r-project.org
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]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Más filtrado de variables

2018-03-07 Por tema Carlos Ortega
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 ORDENCLASE
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 ORDENCLASE
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  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 <
> c...@qualityexcellence.es> escribió:
>
>
> Hola,
>
> Aquí, tienes otra forma que es bastante sencilla de leer/entender...
>
>
> Lines <- "   GRUPO ORDENCLASE
> 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
> 
> 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@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@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   ORDENCLASEA   1   CLASE-01A
> 2   CLASE-02A   5   CLASE-03B   1   CLASE-01
> B   2   CLASE-02B   5   CLASE-03B   7
> CLASE-04C   2   CLASE-02C   5   CLASE-03C
> 7   CLASE-04D   5   CLASE-03D   7   CLASE-04
> E   1   CLASE-06F   2   CLASE-02F   5
> CLASE-03F   7   CLASE-05G   1   CLASE-07
>  Tendría que quedarme tal que así:
>
> GRUPO ORDEN CLASEA   1   CLASE-01B   2
>   CLASE-02C   5   CLASE-03D   7
> CLASE-04E   1   CLASE-06F   7   CLASE-05
> G   1   CLASE-07
>
> Un saludo
>
> Jose Luis
>
> [[alternative HTML version deleted]]
>
> __ _
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/ listinfo/r-help-es
> 
>
>
> __ _
> R-help-es mailing list
> R-help-es@r-project.org
> 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]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Más filtrado de variables

2018-03-07 Por tema jose luis via R-help-es
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 
 escribió:
 

 Hola,
Aquí, tienes otra forma que es bastante sencilla de leer/entender...

Lines <- "   GRUPO ORDEN    CLASE1      A     1 CLASE-012      A     2 
CLASE-023      A     5 CLASE-034      B     1 CLASE-015      B     2 CLASE-026  
    B     5 CLASE-037      B     7 CLASE-048      C     2 CLASE-029      C     
5 CLASE-0310     C     7 CLASE-0411     D     5 CLASE-0312     D     7 
CLASE-0413     E     1 CLASE-0614     F     2 CLASE-0215     F     5 CLASE-0316 
    F     7 CLASE-0517     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          1 A         1 CLASE-012 B         1 
> CLASE-013 C         2 CLASE-024 D         5 CLASE-035 E         1 CLASE-066 F 
>         2 CLASE-027 G         1 CLASE-07
Saludos,Carlos Ortegawww.qualityexcellence.es



El 7 de marzo de 2018, 12:00, jose luis via R-help-es  
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 
 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@r-project.org
https://stat.ethz.ch/mailman/ listinfo/r-help-es

   
__ _
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/ listinfo/r-help-es





-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

   
[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Más filtrado de variables

2018-03-07 Por tema Carlos Ortega
Hola,

Aquí, tienes otra forma que es bastante sencilla de leer/entender...


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

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@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@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   ORDENCLASEA   1   CLASE-01A
> 2   CLASE-02A   5   CLASE-03B   1   CLASE-01
> B   2   CLASE-02B   5   CLASE-03B   7
> CLASE-04C   2   CLASE-02C   5   CLASE-03C
> 7   CLASE-04D   5   CLASE-03D   7   CLASE-04
> E   1   CLASE-06F   2   CLASE-02F   5
> CLASE-03F   7   CLASE-05G   1   CLASE-07
>  Tendría que quedarme tal que así:
>
> GRUPO ORDEN CLASEA   1   CLASE-01B   2
>   CLASE-02C   5   CLASE-03D   7
> CLASE-04E   1   CLASE-06F   7   CLASE-05
> G   1   CLASE-07
>
> Un saludo
>
> Jose Luis
>
> [[alternative HTML version deleted]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Más filtrado de variables

2018-03-07 Por tema Javier Marcuzzi
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 <ihida...@jccm.es>
escribió:

> Una forma sería ésta:
>
>
>
> > datos
>
>GRUPO ORDENCLASE
>
> 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 ORDENCLASE
>
> 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:r-help-es-boun...@r-project.org] En nombre de jose
> luis via R-help-es
> Enviado el: miércoles, 07 de marzo de 2018 12:01
> Para: jose luis <pepe...@yahoo.es>; Lista R. <r-help-es@r-project.org>
> 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 <
> r-help-es@r-project.org <mailto:r-help-es@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   ORDENCLASEA   1   CLASE-01A
>  2   CLASE-02A   5   CLASE-03B   1   CLASE-01
>   B   2   CLASE-02B   5   CLASE-03B   7
>  CLASE-04C   2   CLASE-02C   5   CLASE-03C
>  7   CLASE-04D   5   CLASE-03D   7   CLASE-04
>   E   1   CLASE-06F   2   CLASE-02F   5
>  CLASE-03F   7   CLASE-05G   1   CLASE-07
>  Tendría que quedarme tal que así:
>
> GRUPO ORDEN CLASEA   1   CLASE-01B
>  2   CLASE-02C   5   CLASE-03D   7
>  CLASE-04E   1   CLASE-06F   7   CLASE-05
>   G   1   CLASE-07
>
> Un saludo
>
> Jose Luis
>
> [[alternative HTML version deleted]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org <mailto:R-help-es@r-project.org>
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
> [[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]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Más filtrado de variables

2018-03-07 Por tema Javier Marcuzzi
Estimado José Luis

Supongamos tres datos, los cuáles tienen tres columnas

1,1,1
2,1,1
2,1,2

En este ejemplo está ordenado, pero usted al 2,1,1 no lo desea porque el 1
(clase, último), se repite con el 1 del 1,1,1, todo quedaría filtrado de
esta forma:
1,1,1
2,1,2

Si comprendí su problema yo lo realizaría con números, cada clase tiene un
número, y luego crearía un auxiliar y lo incrementaría (clase<-clase+1), de
tal forma que luego de tener todo ordenado de menor a mayor podría recorrer
con un for buscando el que ya está incrementado (lo incrementé en el ciclo
anterior del for o en el inicio vale 1).

Es una idea para escribir el algoritmo.

Javier Rubén Marcuzzi

El 7 de marzo de 2018, 8:00, jose luis via R-help-es <
r-help-es@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@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   ORDENCLASEA   1   CLASE-01A
> 2   CLASE-02A   5   CLASE-03B   1   CLASE-01
> B   2   CLASE-02B   5   CLASE-03B   7
> CLASE-04C   2   CLASE-02C   5   CLASE-03C
> 7   CLASE-04D   5   CLASE-03D   7   CLASE-04
> E   1   CLASE-06F   2   CLASE-02F   5
> CLASE-03F   7   CLASE-05G   1   CLASE-07
>  Tendría que quedarme tal que así:
>
> GRUPO ORDEN CLASEA   1   CLASE-01B   2
>   CLASE-02C   5   CLASE-03D   7
> CLASE-04E   1   CLASE-06F   7   CLASE-05
> G   1   CLASE-07
>
> Un saludo
>
> Jose Luis
>
> [[alternative HTML version deleted]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Más filtrado de variables

2018-03-07 Por tema Isidro Hidalgo Arellano
Una forma sería ésta:

 

> datos

   GRUPO ORDENCLASE

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 ORDENCLASE

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:r-help-es-boun...@r-project.org] En nombre de jose luis 
via R-help-es
Enviado el: miércoles, 07 de marzo de 2018 12:01
Para: jose luis <pepe...@yahoo.es>; Lista R. <r-help-es@r-project.org>
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 
<r-help-es@r-project.org <mailto:r-help-es@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   ORDENCLASEA   1   CLASE-01A   2   
CLASE-02A   5   CLASE-03B   1   CLASE-01B   
2   CLASE-02B   5   CLASE-03B   7   CLASE-04C   
2   CLASE-02C   5   CLASE-03C   7   CLASE-04
D   5   CLASE-03D   7   CLASE-04E   1   CLASE-06
F   2   CLASE-02F   5   CLASE-03F   7   
CLASE-05G   1   CLASE-07
 Tendría que quedarme tal que así:

GRUPO ORDEN CLASEA   1   CLASE-01B   2  
 CLASE-02C   5   CLASE-03D   7   CLASE-04   
 E   1   CLASE-06F   7   CLASE-05G   1  
 CLASE-07

Un saludo

Jose Luis

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org <mailto:R-help-es@r-project.org> 
https://stat.ethz.ch/mailman/listinfo/r-help-es


[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Más filtrado de variables

2018-03-07 Por tema jose luis via R-help-es
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 
 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@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

   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





##

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










   
___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es