Permute todas as enumerações exclusivas de um vetor em R
Estou tentando encontrar uma função que permita todos osúnic permutações de um vetor, sem contar justaposições em subconjuntos do mesmo tipo de elemento. Por exemplo
dat <- c(1,0,3,4,1,0,0,3,0,4)
te
factorial(10)
> 3628800
ermutações possíveis, mas apenas10!/(2!*2!*4!*2!)
factorial(10)/(factorial(2)*factorial(2)*factorial(2)*factorial(4))
> 18900
ermutações únicas ao ignorar justaposições em subconjuntos do mesmo tipo de element
Consigo fazer isso usandounique()
e apermn()
função do pacotecombinat
unique( permn(dat) )
mas isso é computacionalmente muito caro, pois envolve enumerarn!
, que pode ser uma ordem de magnitude mais permutações do que eu preciso. Existe uma maneira de fazer isso sem primeiro computarn!
?