[R-es] Crear bucle
Andrés Hirigoyen
andreshirigoyen en gmail.com
Mar Feb 13 22:42:00 CET 2018
Excelente Carlos, muchas gracias. Me maree con [i] en el bucle que hacia.
Saludos
El 13 de febrero de 2018, 18:38, Carlos Ortega<cof en qualityexcellence.es>
escribió:
> Hola,
>
> Una forma puede ser la siguiente...
> Para comparar, he creado una nueva columna "new_zona" que es la que se va
> rellenando con un bucle...
>
> #-------------------
> > cont <- 1
> > new_zona <- 0
> > for(i in 1:nrow(data)) {
> + new_zona[i] <- cont
> + if(data$Subzona[i] == 1 & i > 1) {
> + cont <- cont + 1
> + new_zona[i] <- cont
> + }
> + }
> >
> > data$new_zona <- new_zona
> > data
> Margen Zona Subzona Long new_zona
> 1 B 1 1 9 1
> 2 B 1 2 12 1
> 3 B 1 3 22 1
> 4 B 1 4 36 1
> 5 B 1 5 36 1
> 6 B 1 6 98 1
> 7 B 2 1 58 2
> 8 B 2 2 47 2
> 9 B 2 3 54 2
> 10 B 2 4 87 2
> 11 B 2 5 26 2
> 12 B 3 1 36 3
> 13 A 3 2 35 3
> 14 A 3 3 91 3
> 15 A 3 4 10 3
> 16 A 3 5 20 3
> 17 A 3 6 36 3
> 18 A 4 1 57 4
> 19 A 4 2 30 4
> 20 A 4 3 69 4
> 21 A 4 4 32 4
> 22 A 4 5 33 4
> 23 A 4 6 36 4
> 24 A 4 7 37 4
> >
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
>
> El 13 de febrero de 2018, 22:32, Xavier-Andoni Tibau Alberdi <
> xavitibau en gmail.com> escribió:
>
>> Perdona, toda la razón, no miré bien el problema antes de responder.
>>
>> Seguro que hay una manera más eficiente. Pero yo lo haría con un bucle,
>> luego usas una bariable dummy, digamos zonna_d, que incremente su valor en
>> 1 cada vez que subzona es ==1. Entonces zona = zonna_d.
>>
>> Se entiende?
>>
>> Saludos,
>>
>> Xavier
>>
>> 2018-02-13 22:26 GMT+01:00 Andrés Hirigoyen <andreshirigoyen en gmail.com>:
>>
>> > Xavier el tema que no logro solucionar es pasar de subzona==1 a
>> > subzona==2. Probé con ifelse pero me cambia los valores de toda la
>> columan
>> > cuando cambia de zona.
>> > Gracias por responder
>> >
>> > El 13 de febrero de 2018, 18:19, Xavier-Andoni Tibau Alberdi<
>> > xavitibau en gmail.com> escribió:
>> >
>> >> Creo que necesitas usar la funcion: ifelse().
>> >>
>> >> Saludos!
>> >>
>> >> El 13 feb. 2018 22:16, "Andrés Hirigoyen" <andreshirigoyen en gmail.com>
>> >> escribió:
>> >>
>> >>> Buenas tardes para tod en s
>> >>> (de nuevo)
>> >>>
>> >>> Tengo el siguiente dataframe:
>> >>> margen<-c("A","B","A","B","A","B","A","B","A","B","A","B","A
>> >>> ","B","A","B","A","B","A","B","A","B","A","B")
>> >>> margen<-sort(margen, decreasing=T)
>> >>> long<-c(9,12,22,36,36,98,58,47,54,87,26,36,35,91,10,20,36,57
>> >>> ,30,69,32,33,36,37)
>> >>>
>> >>> subzona<-c(1,2,3,4,5,6,1,2,3,4,5,1,2,3,4,5,6,1,2,3,4,5,6,7)
>> >>> zona<-c(1,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,4)
>> >>>
>> >>> data<-data.frame(Margen=margen, Zona=zona,
>> Subzona=subzona,Long=long)
>> >>>
>> >>> La Variable "zona" es creada a mano cuando dentro de un mismo
>> "Margen" la
>> >>> "subzona"==1.
>> >>> Luego sigue valiendo 1 a medida que las observaciones de la "subzona"
>> >>> avanzan (1,2,...n) . Cuando aparece una nueva observación ("subzona")
>> con
>> >>> el número 1, la "zona" cambia a 2 , luego a 3 etc. hasta q inicia en 1
>> >>> cuando cambio de "Margen"
>> >>>
>> >>> Me gustaría crear la variable Zona de forma automática, es decir
>> cuando
>> >>> la
>> >>> "subzona"==1, "zona" valdría 1, hasta que "subzona" valga 1 de nuevo
>> allí
>> >>> la "zona" valdrá 2 y así sucesivamente (hasta que cambie a
>> "Margen"==2 e
>> >>> inicia de nuevo).
>> >>> Estoy con terribles líos con if ifelse loops... Espero haber sido
>> claro
>> >>>
>> >>> Saludos y desde ya muchas 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
>> >>>
>> >>
>> >
>> >
>> > --
>> > *Andrés Hirigoyen*
>> > * Prof. Ciencias Biológicas*
>> > *Ing. Agr. Forestal (MSc) *
>> >
>> > *http://andreshirigoyen.com/web/ <http://andreshirigoyen.com/web/>*
>> >
>>
>> [[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
>>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
--
*Andrés Hirigoyen*
* Prof. Ciencias Biológicas*
*Ing. Agr. Forestal (MSc) *
*http://andreshirigoyen.com/web/ <http://andreshirigoyen.com/web/>*
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es