Hola a todos, como bien sabŽis, se llama combinaciones de m
elementos tomados de
n en n (m ³ n) a todas las agrupaciones posibles que pueden hacerse
con los m
elementos de forma que: no entran todos los elementos, no importa
el orden y no
se repiten los elementos.
En mi caso, quiero hacer una lista que contenga todas las
combinaciones de m
elementos tomados de n en n. He programado el siguiente c—digo que
creo es
correcto:
a<-0
b<-0
for (i in 1:18) {
for (j in 1:17) {
for (k in 1:16) {
for (l in 1:15) {
for (m in 1:14) {
for (n in 1:13) {
for (o in 1:12) {
for (p in 1:11) {
if(i!=j & i!=k & i!=l & i!=m & i!=n & i!=o & i!=p & j!=k & j!=l & j!
=m & j!=n &
j!=o & j!=p & k!=l & k!=m & k!=n & k!=o & k!=p ) {
# hago dos if por claridad y longitud de la instrucci—n
if(l!=m & l!=n & l!=o & l!=p & m!=n & m!=o & m!=p & n!=o & n!=p & o!
=p) {
b<-cbind(i,j,k,l,m,n,o,p)
a<-rbind(a,b)
}
}
}
}
}
}
}
}
}
}
Este c—digo tiene desde mi punto de vista dos problemas:
a- Tarda mucho en ejecutarse.
b- No es elegante.
Mi pregunta es: Àse os ocurre alguna forma m‡s sencilla de hacer lo
mismo?
Saludos y muchas gracias,
Fernando
[[alternative HTML version deleted]]