Permute Indices for Triangular Matrices
lower.to.upper.tri.inds.RdCompute index vectors for extracting or reordering of lower or upper triangular matrices that are stored as contiguous vectors.
Examples
m5 <- matrix(NA,5,5)
m <- m5; m[lower.tri(m)] <- upper.to.lower.tri.inds(5); m
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] NA NA NA NA NA
#> [2,] 1 NA NA NA NA
#> [3,] 2 3 NA NA NA
#> [4,] 4 5 6 NA NA
#> [5,] 7 8 9 10 NA
m <- m5; m[upper.tri(m)] <- lower.to.upper.tri.inds(5); m
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] NA 1 2 3 4
#> [2,] NA NA 5 6 7
#> [3,] NA NA NA 8 9
#> [4,] NA NA NA NA 10
#> [5,] NA NA NA NA NA
stopifnot(lower.to.upper.tri.inds(2) == 1,
lower.to.upper.tri.inds(3) == 1:3,
upper.to.lower.tri.inds(3) == 1:3,
sort(upper.to.lower.tri.inds(5)) == 1:10,
sort(lower.to.upper.tri.inds(6)) == 1:15)