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 > >
Marcelino de la Cruz Rot
2020-Nov-04 19:27 UTC
[R-es] Concatenar secuencia hasta el final con ifelse
No sé si te he entendido pero con el código que te he mandado, todas las observaciones que tengan 1, 2, 3, 4 o 5 en Data$Order.individual tendrán 1 en Data$Order.Page; todas las que tengan 6, 7, 8, 9, 0 10, tendrán 2 en Data$Order.Page, etc, aunque haya varias que tengan valor 1 en esa variable. Vamos, como en este ejemplo: > valores <- rep(1:3200, each=5) > > Order.individual <- c(1:20, 1:20) > > data.frame(Order.individual, Order.Page=valores[Order.individual]) Order.individual Order.Page 1 1 1 2 2 1 3 3 1 4 4 1 5 5 1 6 6 2 7 7 2 8 8 2 9 9 2 10 10 2 11 11 3 12 12 3 13 13 3 14 14 3 15 15 3 16 16 4 17 17 4 18 18 4 19 19 4 20 20 4 21 1 1 22 2 1 23 3 1 24 4 1 25 5 1 26 6 2 27 7 2 28 8 2 29 9 2 30 10 2 31 11 3 32 12 3 33 13 3 34 14 3 35 15 3 36 16 4 37 17 4 38 18 4 39 19 4 40 20 4 > El 04/11/2020 a las 20:12, miriam.alzate en unavarra.es escribió:> 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 >> >> > > .-- 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:49 UTC
[R-es] Concatenar secuencia hasta el final con ifelse
Perfecto! He ejecutado el código y funciona, sí es lo que necesitaba. Muchísimas gracias. Miriam El Mie, 4 de Noviembre de 2020, 20:27, Marcelino de la Cruz Rot escribió:> No sé si te he entendido pero con el código que te he mandado, todas las > observaciones que tengan 1, 2, 3, 4 o 5 en Data$Order.individual > tendrán 1 en Data$Order.Page; todas las que tengan 6, 7, 8, 9, 0 10, > tendrán 2 en Data$Order.Page, etc, aunque haya varias que tengan valor 1 > en esa variable. Vamos, como en este ejemplo: > > > valores <- rep(1:3200, each=5) > > > > Order.individual <- c(1:20, 1:20) > > > > data.frame(Order.individual, Order.Page=valores[Order.individual]) > Order.individual Order.Page > 1 1 1 > 2 2 1 > 3 3 1 > 4 4 1 > 5 5 1 > 6 6 2 > 7 7 2 > 8 8 2 > 9 9 2 > 10 10 2 > 11 11 3 > 12 12 3 > 13 13 3 > 14 14 3 > 15 15 3 > 16 16 4 > 17 17 4 > 18 18 4 > 19 19 4 > 20 20 4 > 21 1 1 > 22 2 1 > 23 3 1 > 24 4 1 > 25 5 1 > 26 6 2 > 27 7 2 > 28 8 2 > 29 9 2 > 30 10 2 > 31 11 3 > 32 12 3 > 33 13 3 > 34 14 3 > 35 15 3 > 36 16 4 > 37 17 4 > 38 18 4 > 39 19 4 > 40 20 4 > > > > El 04/11/2020 a las 20:12, miriam.alzate en unavarra.es escribió: >> 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 >>> >>> >> >> . > > > -- > 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 > >