miri@m@@iz@te m@iii@g oii u@@v@rr@@es
2020-Nov-04 16:49 UTC
[R-es] Concatenar secuencia hasta el final con ifelse
Hola, Necesito asignar a cada observación un orden según su posición en un listado, estoy aplicando el siguiente código, pero no se cómo extenderlo para que lo haga hasta el final de las observaciones sin hacerlo manualmente: Data$Order.Page <- ifelse(Data$Order.individual <=5, 1, ifelse(Data$Order.individual<=10, 2, ifelse(Data$Order.individual <=15, 3,... Lo que nos diría es que si el orden individual es menor o igual que 5, la nueva variable tenga valor 1; si es menor o igual que 10, tenga valor 2; si es menor o igual que 15, valor 3, y así sucesivamente. Pero hay casos donde la variable Order.individual va del 1 al 16.000, por lo tanto no es práctico ponerlo de forma manual. ¿Hay forma de hacerlo automático? Muchas gracias
Marcelino de la Cruz Rot
2020-Nov-04 17:32 UTC
[R-es] Concatenar secuencia hasta el final con ifelse
Hola: Si se tratase, como parece implícito, de que cada 5 unidades de Data$Order.individual equivale a 1 unidad de Data$Order.Page, y si el máximo valor es 16000, tendrías en total 16000/5 = 3200 valores posibles para Data$Order.Page. Por lo tanto, podrías hacer algo así: valores <- rep(1:3200, each=5) Data$Order.Page <- valores[Data$Order.individual] Saludos, Marcelino El 04/11/2020 a las 17:49, miriam.alzate en unavarra.es escribió:> Hola, > > Necesito asignar a cada observación un orden según su posición en un > listado, estoy aplicando el siguiente código, pero no se cómo extenderlo > para que lo haga hasta el final de las observaciones sin hacerlo > manualmente: > > Data$Order.Page <- ifelse(Data$Order.individual <=5, 1, > ifelse(Data$Order.individual<=10, 2, > ifelse(Data$Order.individual <=15, 3,... > > Lo que nos diría es que si el orden individual es menor o igual que 5, la > nueva variable tenga valor 1; si es menor o igual que 10, tenga valor 2; > si es menor o igual que 15, valor 3, y así sucesivamente. > > Pero hay casos donde la variable Order.individual va del 1 al 16.000, por > lo tanto no es práctico ponerlo de forma manual. ¿Hay forma de hacerlo > automático? > > Muchas gracias > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > .-- Marcelino de la Cruz Rot Depto. de Biología y Geología Física y Química Inorgánica Universidad Rey Juan Carlos Móstoles España
miri@m@@iz@te m@iii@g oii u@@v@rr@@es
2020-Nov-04 19:12 UTC
[R-es] Concatenar secuencia hasta el final con ifelse
Hola, muchas gracias por contestar, Creo que no es exactamente eso porque a veces la variable Data$Order.individual es común a varias observaciones de la base de datos, es decir, puede haber varias observaciones que tengan valor 1 en esa variable. Si lo hago de la forma que me dices, no se si está teniendo eso en cuenta. La idea es que el código lea qué valor tiene la observación en Data$Order.individual, porque me interesa que por ejemplo de el valor 1 a las que tienen 5 o menos (aunque no sean sólo 5 observaciones y sean más). No se si me explico... Muchas gracias! El Mie, 4 de Noviembre de 2020, 18:32, Marcelino de la Cruz Rot escribió:> Hola: > > Si se tratase, como parece implícito, de que cada 5 unidades de > Data$Order.individual equivale a 1 unidad de Data$Order.Page, y si el > máximo valor es 16000, tendrías en total 16000/5 = 3200 valores posibles > para Data$Order.Page. > > Por lo tanto, podrías hacer algo así: > > valores <- rep(1:3200, each=5) > Data$Order.Page <- valores[Data$Order.individual] > > Saludos, > Marcelino > > El 04/11/2020 a las 17:49, miriam.alzate en unavarra.es escribió: >> Hola, >> >> Necesito asignar a cada observación un orden según su posición en un >> listado, estoy aplicando el siguiente código, pero no se cómo extenderlo >> para que lo haga hasta el final de las observaciones sin hacerlo >> manualmente: >> >> Data$Order.Page <- ifelse(Data$Order.individual <=5, 1, >> ifelse(Data$Order.individual<=10, 2, >> ifelse(Data$Order.individual <=15, 3,... >> >> Lo que nos diría es que si el orden individual es menor o igual que 5, >> la >> nueva variable tenga valor 1; si es menor o igual que 10, tenga valor 2; >> si es menor o igual que 15, valor 3, y así sucesivamente. >> >> Pero hay casos donde la variable Order.individual va del 1 al 16.000, >> por >> lo tanto no es práctico ponerlo de forma manual. ¿Hay forma de hacerlo >> automático? >> >> Muchas gracias >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> . > > > -- > Marcelino de la Cruz Rot > Depto. de Biología y Geología > Física y Química Inorgánica > Universidad Rey Juan Carlos > Móstoles España > >