Permute todas las enumeraciones únicas de un vector en R
Estoy tratando de encontrar una función que permute todas lasúnic permutaciones de un vector, sin contar las yuxtaposiciones dentro de subconjuntos del mismo tipo de elemento. Por ejemplo
dat <- c(1,0,3,4,1,0,0,3,0,4)
tien
factorial(10)
> 3628800
posibles permutaciones, pero solo10!/(2!*2!*4!*2!)
factorial(10)/(factorial(2)*factorial(2)*factorial(2)*factorial(4))
> 18900
permutaciones únicas al ignorar las yuxtaposiciones dentro de subconjuntos del mismo tipo de elemento.
Puedo obtener esto usandounique()
y elpermn()
función del paquetecombinat
unique( permn(dat) )
pero esto es computacionalmente muy costoso, ya que implica enumerarn!
, que puede ser un orden de magnitud más permutaciones de las que necesito. ¿Hay alguna manera de hacer esto sin calcular primeron!
?