Perdon, con las prisas puse 5, pero el ejemplo seria para k =10 y todas las variables tomarian valor de 0 a 10 Enviado de Samsung Mobile "Carlos J. Gil Bellosta " <cgb@datanalytics.com> escribió: El día 4 de noviembre de 2013 18:58, <morales@us.es> escribió:> > > Hola, necesito un procedimiento que permita generar todas las > combinaciones posibles de una serie de variables enteras que varían > entre 0 y un valor determinado k. Por ejemplo, supongamos que tengo 4 > variables con rango (0,5). Necesito crear todos los vectores combinación > de todos esos valores que sumen un determinado valor (p. ej. : 10). > Algunos posibles resultados serían: > > (0,0,0,0,10) > > (1,0,0,0,9) > > > (1,1,1,0,7), > > etc.Ahí no veo 4 variables (sino 5) y no están en el rango 0:5 (hay valores iguales a 10).> Se le ocurre a alguien como hacerlo en R?Podrías ensayar algo recursivo: da a la posición 1 de tu vector valores en tu rango; para cada vector obtenido, llama a la misma función con un vector de longitud más corta (las posiciones restantes) y un objetivo de suma distinto (el original menos el asignado). Devuelve solo los valores que funcionen. Dependiendo de las dimensiones de tu problema, podrías petar la máquina seriamente. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com [[alternative HTML version deleted]]
...utilizando la función interaction(). Aquí, un pequeño ejemplo con 3 variables (n=3) y k=5 k=5;n=3 z0=0:k;z=z0 for(i in 1:(n-1)) z=interaction(z,z0,sep=" ") l=levels(z) res=strsplit(l," ") do.call(rbind,res) Un saludo. Olivier -- ____________________________________ Olivier G. Nuñez Email:onunez@iberstat.es Tel : +34 663 03 69 09 Web: http.//www.iberstat.es ____________________________________ El 04/11/2013 20:43, Morales escribió:> Perdon, con las prisas puse 5, pero el ejemplo seria para k =10 y todas las variables tomarian valor de 0 a 10 > > > Enviado de Samsung Mobile > > "Carlos J. Gil Bellosta " <cgb@datanalytics.com> escribió: > > El dÃa 4 de noviembre de 2013 18:58, <morales@us.es> escribió: >> >> Hola, necesito un procedimiento que permita generar todas las >> combinaciones posibles de una serie de variables enteras que varÃan >> entre 0 y un valor determinado k. Por ejemplo, supongamos que tengo 4 >> variables con rango (0,5). Necesito crear todos los vectores combinación >> de todos esos valores que sumen un determinado valor (p. ej. : 10). >> Algunos posibles resultados serÃan: >> >> (0,0,0,0,10) >> >> (1,0,0,0,9) >> >> >> (1,1,1,0,7), >> >> etc. > Ahà no veo 4 variables (sino 5) y no están en el rango 0:5 (hay > valores iguales a 10). > >> Se le ocurre a alguien como hacerlo en R? > PodrÃas ensayar algo recursivo: da a la posición 1 de tu vector > valores en tu rango; para cada vector obtenido, llama a la misma > función con un vector de longitud más corta (las posiciones restantes) > y un objetivo de suma distinto (el original menos el asignado). > Devuelve solo los valores que funcionen. > > Dependiendo de las dimensiones de tu problema, podrÃas petar la > máquina seriamente. > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > [[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]]
"Marcuzzi, Javier Rubén"
2013-Nov-04 22:26 UTC
[R-es] Problema de búsqueda de combinaciones
Estimados Una alternativa podría ser expand, copio y pego una referencia (tendría que estudiarlo para este caso pero yo supe utilizar esa opción). http://stat.ethz.ch/R-manual/R-devel/library/base/html/expand.grid.html Javier Rubén Marcuzzi El 04/11/13 17:32, Olivier Nuñez escribió:> ...utilizando la función interaction(). > Aquí, un pequeño ejemplo con 3 variables (n=3) y k=5 > > k=5;n=3 > z0=0:k;z=z0 > for(i in 1:(n-1)) z=interaction(z,z0,sep=" ") > l=levels(z) > res=strsplit(l," ") > do.call(rbind,res) > > Un saludo. Olivier > > > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]]