2011-10-26 18 views
15

Acabo de empezar a aprender Probabilidad, y estoy buscando herramientas para trabajar con Linux.¿Cómo se calcula la combinación y la permutación en R?

que he encontrado algunos paquetes Combinaciones http://rss.acs.unt.edu/Rdoc/library/Combinations/html/00Index.html pero cuando he intentado instalar ellos, el proceso failled con el siguiente mensaje:

> install.packages("Combinations") 
Installing package(s) into ‘/home/maxim/R/x86_64-pc-linux-gnu-library/2.13’ 
(as ‘lib’ is unspecified) 
Warning message: 
In getDependencies(pkgs, dependencies, available, lib) : 
    package ‘Combinations’ is not available (for R version 2.13.1) 

Respuesta

24

Puede utilizar el paquete combinat con R 2.13:

install.packages("combinat") 
require(combinat) 
permn(3) 
combn(3, 2) 

Si desea conocer el número de combinación/permutaciones, luego verifique el tamaño del resultado, p. ej .:

length(permn(3)) 
dim(combn(3,2))[2] 
+0

¿Hay algo que simplemente me podría dar una serie de combinaciones posibles, en lugar de imprimirlas todas? –

+10

@MaximVeksler Eche un vistazo a 'elegir'. ('choose (5, 2) == ncol (combn (5, 2))') – chl

+0

Este sitio puede usarse como alternativa: http://www.englishact.com/Permutation/index.php –

1

Podría ser que el paquete de "combinaciones" no se actualiza más y hace no funciona con una versión reciente de R (tampoco pude instalarlo en R 2.13.1 en Windows). El paquete "combinat" se instala sin problemas para mí y podría ser una solución para usted, dependiendo de lo que intente hacer exactamente.

3

El paquete Combinations no forma parte del conjunto de paquetes CRAN estándar, sino que forma parte de un repositorio diferente, omegahat. Para instalarlo es necesario utilizar

install.packages("Combinations", repos = "http://www.omegahat.org/R") 

Consulte la documentación en http://www.omegahat.org/Combinations/

+0

Esto tampoco funciona, creo que la versión R que estoy usando es (2.13) no es compatible –

+0

Ah, hubo un error tipográfico; debería ser omegahat, no omeghat. Copié y pegué el comando, pero debería haberlo probado primero. He actualizado mi respuesta. Este código actualizado funciona para mí en 2.13.2 en Windows. –

13

La función combn se encuentra en el paquete utils estándar (es decir, ya instalados)

choose también ya está disponible en la base de Especial {}

+2

wow muchas molestias para una pregunta simple que su respuesta fue 3 palabras "la función de elegir" – bubakazouba

27

Si no desea que su código de depender de otros paquetes, siempre puede escribir estas funciones:

perm = function(n, x) { 
    factorial(n)/factorial(n-x) 
} 

comb = function(n, x) { 
    factorial(n)/factorial(n-x)/factorial(x) 
} 
+4

Esa es una mala idea numéricamente. R puede evaluar 'choose (500, 2)' pero no 'factorial (500)'. Al menos deberías trabajar con 'lfactorial' y luego tomar' exp() '. La única razón por la que estoy publicando esto es porque tu respuesta tiene tantos votos ascendentes, parece que la gente no sabe estas cosas ... –

Cuestiones relacionadas