For a permutation p build q such that p[q] == q[p] == seq_len(length(p)). Please see https://win-vector.com/2017/05/18/on-indexing-operators-and-composition/ and https://win-vector.com/2017/09/02/permutation-theory-in-action/.

invert_perm(p)

Arguments

p

vector of length n containing each of seq_len(n) exactly once.

Value

vector q such that p[q] == q[p] == seq_len(length(p))

Examples

p <- c(4, 5, 7, 8, 9, 6, 1, 3, 2, 10) q <- invert_perm(p) p[q]
#> [1] 1 2 3 4 5 6 7 8 9 10
#> [1] TRUE
q[p]
#> [1] 1 2 3 4 5 6 7 8 9 10
#> [1] TRUE