[R-es] Combinatoria

Our Utopy ourutopy en gmail.com
Dom Mar 22 22:50:37 CET 2015


Hola amigos, muchas gracias por vuestra ayuda.

Entonces veo que mi sorpresa era legítima. Por todos vuestros mails la
conclusión es que:

   - En el módulo base de R no incluye combinatoria elemental, ni siquiera
   el número combinatorio Cm,n hay que cargar el paquete *combinat*
   - Y para las variaciones con repetición el paquete* gtools*
   - Y aún así no tenemos ni las combinaciones ni las permutaciones, ambas
   con repetición.


Pues tendremos que ponernos a ello ¿no creéis? y hacer un paquete que lo
resuelva y que genere incluso un triángulo de Pascal y otras cuestiones del
binomio de Newton.
Ya sé que es matemática elemental pero repito que estoy sorprendido por
este hecho y más porque estas *Técnicas de conteo* son imprescindibles para
el cálculo básico de probabilidades.

Seguimos en la lucha. Un saludo


El 22 de marzo de 2015, 19:32, Francisco Rodríguez <fjroar en hotmail.com>
escribió:

> Carlos, creo que el ejemplo que mandas se refiere a las Variaciones con
> Repetición de 3 elementos tomados de 3 en 3 y cuyo número asciende a 27
>
> En las Permutaciones con repetición con las observaciones se forman grupos
> disjuntos cuya suma de cardinales es el número total, así pues puede
> hablarse de Permutaciones con Repetición de 10 elementos tomados de 5 en 5,
> 2 en 2 y de 3 en 3, en este caso, el número de combinaciones que sale
> seria: PR5;3,2,3 = 10!/(5!·2!·3!)
>
> Este caso es el que digo que seria mas dificil de preparar y quizas si
> requiere algo de programacion, porque el numero de grupos es variable, pero
> a lo mejor en lo que mandas se puede introducir algun tipo de vector, en
> todo caso lo miro mañana
>
>
> Un saludo
>
> ------------------------------
> Date: Sun, 22 Mar 2015 13:22:36 +0100
> Subject: Re: [R-es] Combinatoria
> From: cof en qualityexcellence.es
> To: fjroar en hotmail.com
> CC: ourutopy en gmail.com; r-help-es en r-project.org
>
>
> Sí, también...
> Para las permutaciones, n=r.
> Y con el parámetro "repeats.allowed" controlas si son con o sin repetción:
>
> #----------------------
> > #Permutaciones *con repetición*
> > permutations(n=3, r=3, v=x, repeats.allowed=TRUE)
>       [,1]    [,2]    [,3]
>  [1,] "azul"  "azul"  "azul"
>  [2,] "azul"  "azul"  "rojo"
>  [3,] "azul"  "azul"  "verde"
>  [4,] "azul"  "rojo"  "azul"
>  [5,] "azul"  "rojo"  "rojo"
>  [6,] "azul"  "rojo"  "verde"
>  [7,] "azul"  "verde" "azul"
>  [8,] "azul"  "verde" "rojo"
>  [9,] "azul"  "verde" "verde"
> [10,] "rojo"  "azul"  "azul"
> [11,] "rojo"  "azul"  "rojo"
> [12,] "rojo"  "azul"  "verde"
> [13,] "rojo"  "rojo"  "azul"
> [14,] "rojo"  "rojo"  "rojo"
> [15,] "rojo"  "rojo"  "verde"
> [16,] "rojo"  "verde" "azul"
> [17,] "rojo"  "verde" "rojo"
> [18,] "rojo"  "verde" "verde"
> [19,] "verde" "azul"  "azul"
> [20,] "verde" "azul"  "rojo"
> [21,] "verde" "azul"  "verde"
> [22,] "verde" "rojo"  "azul"
> [23,] "verde" "rojo"  "rojo"
> [24,] "verde" "rojo"  "verde"
> [25,] "verde" "verde" "azul"
> [26,] "verde" "verde" "rojo"
> [27,] "verde" "verde" "verde"
> > #Permutaciones *sin repetición*
> > permutations(n=3, r=3, v=x, repeats.allowed=FALSE)
>      [,1]    [,2]    [,3]
> [1,] "azul"  "rojo"  "verde"
> [2,] "azul"  "verde" "rojo"
> [3,] "rojo"  "azul"  "verde"
> [4,] "rojo"  "verde" "azul"
> [5,] "verde" "azul"  "rojo"
> [6,] "verde" "rojo"  "azul"
> #------------------------------------
>
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
> El 22 de marzo de 2015, 12:18, Francisco Rodríguez <fjroar en hotmail.com>
> escribió:
>
> 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
>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>

	[[alternative HTML version deleted]]



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