[R-es] Combinatoria

Francisco Rodríguez fjroar en hotmail.com
Dom Mar 22 12:18:20 CET 2015


Carlos y ya puestos ¿Las permutaciones con repetición, salen también de aquí?
Un saludo y gracias

> Date: Sun, 22 Mar 2015 12:15:45 +0100
> From: cof en qualityexcellence.es
> To: ourutopy en gmail.com
> CC: r-help-es en r-project.org
> Subject: Re: [R-es] Combinatoria
> 
> Hola Miguel,
> 
> Sí se pueden obtener las variaciones con y sin repetición en R.
> Eso sí están un poco escondidas...
> 
> Se pueden calcular de esta forma:
> 
> #----------------------
> > #Cargar el paquete gtools
> > library(gtools)
> > #Definir el conjunto sobre el que se hará el cálculo
> > x <- c('rojo', 'azul', 'verde')
> > #Utilizar la función "permutations()" modificando el valor de "r" y
> > #modificando el parámetro "repeats.allowed" dependiendo si sequieren con
> o sin repetición
> > permutations(n=3, r=2, v=x, repeats.allowed=FALSE)
>      [,1]    [,2]
> [1,] "azul"  "rojo"
> [2,] "azul"  "verde"
> [3,] "rojo"  "azul"
> [4,] "rojo"  "verde"
> [5,] "verde" "azul"
> [6,] "verde" "rojo"
> > permutations(n=3, r=2, v=x, repeats.allowed=TRUE)
>       [,1]    [,2]
>  [1,] "azul"  "azul"
>  [2,] "azul"  "rojo"
>  [3,] "azul"  "verde"
>  [4,] "rojo"  "azul"
>  [5,] "rojo"  "rojo"
>  [6,] "rojo"  "verde"
>  [7,] "verde" "azul"
>  [8,] "verde" "rojo"
>  [9,] "verde" "verde"
> #----------------------
> 
> 
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
> 
> 
> El 22 de marzo de 2015, 9:02, Our Utopy <ourutopy en gmail.com> escribió:
> 
> > Hola de nuevo amigos, Gracias por vuestras respuestas. Un placer levantarme
> > esta mañana y ver que alguien había tratado de ayudarme. Espero en unas
> > semanas poder también ser yo útil a quien lo necesite.
> >
> > Me explico de nuevo. Estoy aprendiendo y mi primera visión, antes del Data
> > Mining y las redes neuronales a las que quiero llegar, es ir solucionando
> > los problemas básicos además de explicarles R a mis propios alumnos en
> > lugar de Wiris (idóneo para secundaria) o Maxima.
> >
> > Mi problema es de combinatoria básica, quiero calcular Cm,n  Pn  Vm,n  y lo
> > mismo con repetición. Son cosas muy básicas de secundaria que cualquier
> > programa o calculadora de mano las resuelve. Supuse que R en su módulo
> > básico o CORE las respondería al igual que responde a logaritmos en
> > cualquier base, determinantes e inversas de matrices.
> >
> > Pero no, hay que instalar paquetes adicionales.
> >
> > Buscando encontré que el paquete *combinat* incluye dos de estas funciones
> >
> >    - *combn(m,n)*
> >    - *permn(n)*
> >    - *e incluso mCn(m,n)*
> >
> > N es solo que haga el cálculod e cuantas son sino que las escribe todas,
> > por ejemplo
> >
> > > combn(4,2)
> >      [,1] [,2] [,3] [,4] [,5] [,6]
> > [1,]    1    1    1    2    2    3
> > [2,]    2    3    4    3    4    4
> >
> > > permn(3)
> > [[1]]
> > [1] 1 2 3
> >
> > [[2]]
> > [1] 1 3 2
> >
> > [[3]]
> > [1] 3 1 2
> >
> > [[4]]
> > [1] 3 2 1
> >
> > [[5]]
> > [1] 2 3 1
> >
> > [[6]]
> > [1] 2 1 3
> >
> >
> > Y mCn las calcula, sin escribirlas:
> >
> > > nCm(4,2)
> > [1] 6
> >
> > Pero me chocó que NO incluyese Variaciones con y sin repetición, y
> > combinaciones y permutaciones con repetición. Tanto que me las calcule como
> > que me las escriba. Al menos yo no las encuentro a pesar de ser una
> > cuestión muy básica en combinatoria que ayuda a calcular probabilidades y
> > claro, ¡es que R es un programa de Estadística!
> >
> > De ahí mi pregunta al grupo.
> >
> > Si tengo que hacerme mi propia librería, pues creo que en unos días seré
> > capaz de hacerlo. Ayer precisamente ya estuve leyendo sobre construirme mis
> > propias funciones, pero es que me choca que no haya ninguna librería entre
> > las 6200 del repositorio que ya lo incluya.
> >
> > Esa era mi pregunta.
> >
> > Gracias anticipadas.
> >
> > Miguel
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > El 21 de marzo de 2015, 19:35, Francisco Rodríguez <fjroar en hotmail.com>
> > escribió:
> >
> > > En relación con lo que comenta Carlos, por ejemplo para el caso de las
> > > Variaciones sin Repetición, puede ser instructivo
> > > enseñ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ápidadmente
> > > casi 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]]
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es en r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
> 
> 
> 
> -- 
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
> 
> 	[[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
 		 	   		  
	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es