sna (version 2.4)

rperm: Draw a Random Permutation Vector with Exchangeability Constraints

Description

Draws a random permutation on 1:length(exchange.list) such that no two elements whose corresponding exchange.list values are different are interchanged.

Usage

rperm(exchange.list)

Arguments

exchange.list

A vector such that the permutation vector may exchange the ith and jth positions iff exchange.list[i]==exchange.list[j]

Value

A random permutation vector satisfying the given constraints

Details

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).

See Also

rmperm

Examples

Run this code
# NOT RUN {
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)
# }

Run the code above in your browser using DataCamp Workspace