[R-es] FW: Combinatoria
Francisco Rodríguez
fjroar en hotmail.com
Dom Mar 22 00:06:04 CET 2015
Hola, al final no he encontrado nada (aunque puede que alguien en el grupo sepa algo), para generar en sí las combinaciones
No obstante, te mando un ejemplo donde genero las Variaciones con Repetición de m elementos tomados de n en n
En este caso salen m^n combinaciones
Aquí tendrías la función
VconR <- function(m, n){ a<-vector("list",n) for(i in 1:n){ a[[i]]<-rep(1:m) } return(expand.grid(a))}
En este caso hay que usar el expand.grid que es un producto cartesiano en sí y que funciona bien con listas
Por tanto, la función construye una lista genérica según como tomes los elementos, en este caso de n en n elegidos entre un total de m donde importa el orden y se pueden repetir
Sale con el r base
Ejemplo
VconR(4, 3)
Var1 Var2 Var31 1 1 12 2 1 13 3 1 14 4 1 15 1 2 16 2 2 17 3 2 18 4 2 19 1 3 110 2 3 111 3 3 112 4 3 113 1 4 114 2 4 115 3 4 116 4 4 117 1 1 218 2 1 219 3 1 220 4 1 221 1 2 222 2 2 223 3 2 224 4 2 225 1 3 226 2 3 227 3 3 228 4 3 229 1 4 230 2 4 231 3 4 232 4 4 233 1 1 334 2 1 335 3 1 336 4 1 337 1 2 338 2 2 339 3 2 340 4 2 341 1 3 342 2 3 343 3 3 344 4 3 345 1 4 346 2 4 347 3 4 348 4 4 349 1 1 450 2 1 451 3 1 452 4 1 453 1 2 454 2 2 455 3 2 456 4 2 457 1 3 458 2 3 459 3 3 460 4 3 461 1 4 462 2 4 463 3 4 464 4 4 4
Un saludo
PD Creo que en cada caso hay que pensar lo que se necesita y construir en base a lo que hay
From: fjroar en hotmail.com
To: r-help-es en r-project.org
Subject: FW: [R-es] Combinatoria
Date: Sat, 21 Mar 2015 18:44:54 +0000
Ok, respecto a esto imagino que quieres las combinaciones más que el numero lo que no es una trivialidad.
Bueno, lo miro y si encuentro algo en concreto bien, si no habrá que ingeniarlas
Un saludo
From: fjroar en hotmail.com
To: cgb en datanalytics.com; ourutopy en gmail.com
CC: r-help-es en r-project.org
Subject: RE: [R-es] Combinatoria
Date: Sat, 21 Mar 2015 18:35:18 +0000
En relación con lo que comenta Carlos, por ejemplo para el caso de las Variaciones sin Repetición, puede ser instructivoenseñar como se construye como por ejemplo:
VsinR <- function(m, n){ return (factorial(m)/factorial(m-n))}
VsinR(9,3)
-------------------------
Creo que con la función factorial que viene por defecto en R puedes construir siguiendo este modelo rápidadmentecasi cualquier función de las de bachillerato. Las VconR serían m elevado a n
Quizás la única que merezca la pena construir es la de Permutaciones con Repetición porque la parte de repetición puede tener más variedad, voy a mirar si lo encuentro y si no una función lo puede resolver. PR(m; n1, ..., nk) donde n1+...+nk = m y PR(m;n1, ...,nk) = m!/(n1! ·...·nk!)
Un saludo
> Date: Sat, 21 Mar 2015 16:36:50 +0100
> From: cgb en datanalytics.com
> To: ourutopy en gmail.com
> CC: r-help-es en r-project.org
> Subject: Re: [R-es] Combinatoria
>
> Hola, ¿qué tal?
>
> ¿Qué quieres hacer, construir las
> combinaciones/permutaciones/variaciones o calcular cuántas hay?
>
> Es improbable que encuentres funciones que resuelvan exactamente un
> problema específico. Pero sí que podrás, con no mucho esfuerzo,
> extender lo que hay para atacar esos problemas.
>
> Un saludo y suerte con R,
>
> Carlos J. Gil Bellosta
> http://www.datanalytics.com
>
> El día 21 de marzo de 2015, 8:39, Our Utopy <ourutopy en gmail.com> escribió:
> > Hola buenos días, me presento, me llamo Miguel y 'soy de' y 'vivo en'
> > Galicia.
> > Soy profesor de secundaria (Bachillerato Adultos) y llevo 15 días
> > estudiando R a un buen ritmo, pero todavía me faltan miles de cosas.
> >
> > He visto que R facilita, no solo el análisis de datos y que posee una
> > potencia en cálculos estadísticos a cualquier nivel, sino gran caudal de
> > recursos para Data Mining, Redes Neuronales, reconocimiento de patrones y
> > probablemente todo cuanto deseemos, pero ... aqui va mi primera
> > pregunta
> >
> > 1. Si quiero calcular unas combinaciones, la función *combn* ó la *nCm* me
> > lo resuelven
> > 2. Si quiero permutaciones, entonces ya tengo que cargar el paquete
> > combinat
> > 3. Pero no encuentro , y no puedo entenderlo, que no encuentre una
> > función análoga para las variaciones con y sin repetición y para las
> > permutaciones con repetición. y ya llevo varias horas buscando .... ¡!
> > puede que ayer y hoy me encuentre algo espeso, no lo descarto.
> >
> > Me podríais ayudar en esta tan básica duda.
> >
> > 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
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es