Skip to contents

Recursively apply a permutation to a vector an arbitrary number of times. Negative times mean apply the inverse permutation.

Usage

recurse(perm, i, start = seq_along(perm))

Arguments

perm

Permutation (integers 1 to length(start) in some order)

start

Start vector to be permuted

i

Number of times to apply the permutation. i=0 gives start by definition and negative values use the inverse permutation

Author

Robin K. S. Hankin

See also

Examples


n <- 15
noquote(recurse(start=letters[1:n],perm=shift(1:n),i=0))
#>  [1] a b c d e f g h i j k l m n o
noquote(recurse(start=letters[1:n],perm=shift(1:n),i=1))
#>  [1] o a b c d e f g h i j k l m n
noquote(recurse(start=letters[1:n],perm=shift(1:n),i=2))
#>  [1] n o a b c d e f g h i j k l m

noquote(recurse(start=letters[1:n],perm=sample(n),i=1))
#>  [1] l g e o m a j b k i c h n d f
noquote(recurse(start=letters[1:n],perm=sample(n),i=2))
#>  [1] a m h b d g k f e i n l o j c