i use diag() function on list of vectors, list of matrices diagonals vectors of list.
to more specific, suppose have list called list of 100 vectors 14 values each.
>dim(list) 100 14 i create array array of 100 matrices of size 14x14, diagonal of matrix diag2vec(array[i,,]) vector list[i,] (all other values in matrix 0).
so end with:
>dim(array) 100 14 14 i tried using diag() function, cannot work row-wise.
(m <- matrix(1:6, nrow = 2)) # [,1] [,2] [,3] # [1,] 1 3 5 # [2,] 2 4 6 sapply(1:nrow(m), function(i) diag(m[i, ]), simplify = "array") # , , 1 # # [,1] [,2] [,3] # [1,] 1 0 0 # [2,] 0 3 0 # [3,] 0 0 5 # # , , 2 # # [,1] [,2] [,3] # [1,] 2 0 0 # [2,] 0 4 0 # [3,] 0 0 6 also, note m matrix, not list, , dim applied last object returns 3 3 2, want think, instead of 2 3 3 in example.
Comments
Post a Comment