The function:
lpLdiag <- function(x,diags=TRUE)
{
x[upper.tri(x, diag=!diags)] <- NA
print(x)
for(i in 1:nrow(x)) print(c(na.omit(x[i,])))
}
Example:
(m2 <- matrix(1:20, 4, 5))
Output:
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
lpLdiag(m2)
Output:
[,1] [,2] [,3] [,4] [,5]
[1,] 1 NA NA NA NA
[2,] 2 6 NA NA NA
[3,] 3 7 11 NA NA
[4,] 4 8 12 16 NA
[1] 1
[1] 2 6
[1] 3 7 11
[1] 4 8 12 16
lpLdiag(m2, diags=TRUE)
Output:
[,1] [,2] [,3] [,4] [,5]
[1,] 1 NA NA NA NA
[2,] 2 6 NA NA NA
[3,] 3 7 11 NA NA
[4,] 4 8 12 16 NA
[1] 1
[1] 2 6
[1] 3 7 11
[1] 4 8 12 16
lpLdiag(m2, diags=FALSE)
Output:
[,1] [,2] [,3] [,4] [,5]
[1,] NA NA NA NA NA
[2,] 2 NA NA NA NA
[3,] 3 7 NA NA NA
[4,] 4 8 12 NA NA
integer(0)
[1] 2
[1] 3 7
[1] 4 8 12
(m2 <- matrix(1:20, 5, 4))
Output:
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
lpLdiag(m2)
Output:
[,1] [,2] [,3] [,4]
[1,] 1 NA NA NA
[2,] 2 7 NA NA
[3,] 3 8 13 NA
[4,] 4 9 14 19
[5,] 5 10 15 20
[1] 1
[1] 2 7
[1] 3 8 13
[1] 4 9 14 19
[1] 5 10 15 20
lpLdiag(m2, diags=TRUE)
Output:
[,1] [,2] [,3] [,4]
[1,] 1 NA NA NA
[2,] 2 7 NA NA
[3,] 3 8 13 NA
[4,] 4 9 14 19
[5,] 5 10 15 20
[1] 1
[1] 2 7
[1] 3 8 13
[1] 4 9 14 19
[1] 5 10 15 20
lpLdiag(m2, diags=FALSE)
Output:
[,1] [,2] [,3] [,4]
[1,] NA NA NA NA
[2,] 2 NA NA NA
[3,] 3 8 NA NA
[4,] 4 9 14 NA
[5,] 5 10 15 20
integer(0)
[1] 2
[1] 3 8
[1] 4 9 14
[1] 5 10 15 20