[R-es] Combinatoria

Our Utopy ourutopy en gmail.com
Lun Mar 23 00:22:08 CET 2015


Ya me extrañaba a mi!
Mañana a primera hora miro todo lo que me comentas.
Ahora estoy con ecuaciones no lineales y ya veo que hay que cargar
librerias
Muchas gracias. Un saludo

El 23 de marzo de 2015, 0:08, Carlos Ortega <cof en qualityexcellence.es>
escribió:

> Hola,
>
> Por precisar un par de detalles:
>
>
>    - Con el paquete gtools se pueden generar:
>    - las variaciones, permutaciones, combinaciones, variaciones con
>       repetición y combinaciones con repetición (mira el ejemplo adjunto con las
>       combinaciones con repetición).
>       - Quedan sin cubrir las permutaciones con repetición.
>
>
>    - Y dentro del paquete "base", sí que hay formas de calcular algunas
>    cosas de combinatoria. Mira la función "choose()" para el cálculo de las
>    combinaciones. En el ejemplo de la función incluso aparece una forma de
>    generar el triángulo de Pascal.
>
> #--------- Ejemplo de Combinaciones con repetición (gtools) -----
>
> > x <- c('rojo', 'azul', 'verde')
> > # Combinaciones sin repetición
> > combinations(n=3, r=2, v=x, repeats=FALSE)
>      [,1]   [,2]
> [1,] "azul" "rojo"
> [2,] "azul" "verde"
> [3,] "rojo" "verde"
> > # Combinaciones con repetición
> > combinations(n=3, r=2, v=x, repeats=TRUE)
>      [,1]    [,2]
> [1,] "azul"  "azul"
> [2,] "azul"  "rojo"
> [3,] "azul"  "verde"
> [4,] "rojo"  "rojo"
> [5,] "rojo"  "verde"
> [6,] "verde" "verde"
>
> #-----------------------------------------------------------------------
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
> El 22 de marzo de 2015, 22:50, Our Utopy <ourutopy en gmail.com> escribió:
>
>> 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]]
>>
>> _______________________________________________
>> 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