Create contrast matrix typically for use with 'estimate' (Wald tests).
contr(p, n, diff = TRUE, ...)
index of non-zero entries (see example)
Total number of parameters (if omitted the max number in p will be used)
If FALSE all non-zero entries are +1, otherwise the second non-zero element in each row will be -1.
Additional arguments to lower level functions
contr(2,n=5)
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 0 1 0 0 0
contr(as.list(2:4),n=5)
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 0 1 0 0 0
#> [2,] 0 0 1 0 0
#> [3,] 0 0 0 1 0
contr(list(1,2,4),n=5)
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 1 0 0 0 0
#> [2,] 0 1 0 0 0
#> [3,] 0 0 0 1 0
contr(c(2,3,4),n=5)
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 0 1 -1 0 0
#> [2,] 0 1 0 -1 0
contr(list(c(1,3),c(2,4)),n=5)
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 1 0 -1 0 0
#> [2,] 0 1 0 -1 0
contr(list(c(1,3),c(2,4),5))
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 1 0 -1 0 0
#> [2,] 0 1 0 -1 0
#> [3,] 0 0 0 0 1
parsedesign(c("aa","b","c"),"?","?",diff=c(FALSE,TRUE))
#> [,1] [,2] [,3]
#> [1,] 0 1 0
#> [2,] 0 0 1
#> [3,] 0 1 -1
## All pairs comparisons:
pdiff <- function(n) lava::contr(lapply(seq(n-1), \(x) seq(x, n)))
pdiff(4)
#> [,1] [,2] [,3] [,4]
#> [1,] 1 -1 0 0
#> [2,] 1 0 -1 0
#> [3,] 1 0 0 -1
#> [4,] 0 1 -1 0
#> [5,] 0 1 0 -1
#> [6,] 0 0 1 -1