Draw a Random Permutation Vector with Exchangeability Constraints
Draws a random permutation on 1:length(exchange.list)
such that no two elements whose corresponding exchange.list
values are different are interchanged.
rperm(exchange.list)
exchange.list |
A vector such that the permutation vector may exchange the ith and jth positions iff |
rperm
draws random permutation vectors given the constraints of exchangeability described above. Thus, rperm(c(0,0,0,0))
returns a random permutation of four elements in which all exchanges are allowed, while rperm(c(1,1,"a","a")
(or similar) returns a random permutation of four elements in which only the first/second and third/fourth elements may be exchanged. This turns out to be quite useful for searching permutation spaces with exchangeability constraints (e.g., for structural distance estimation).
A random permutation vector satisfying the given constraints
Carter T. Butts buttsc@uci.edu
rperm(c(0,0,0,0)) #All elements may be exchanged rperm(c(0,0,0,1)) #Fix the fourth element rperm(c(0,0,1,1)) #Allow {1,2} and {3,4} to be swapped rperm(c("a",4,"x",2)) #Fix all elements (the identity permutation)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.