Shruti Shruti - 19 days ago 5
R Question

find indices of non zero elements in matrix

I want to get the indices of non zero elements in a matrix.for example

X <- matrix(c(1,0,3,4,0,5), byrow=TRUE, nrow=2);


should give me something like this

row col
1 1
1 3
2 1
2 3


Can any one please tell me how to do that?

Answer
which(X!=0,arr.ind = T)
     row col
[1,]   1   1
[2,]   2   1
[3,]   1   3
[4,]   2   3

If arr.ind == TRUE and X is an array, the result is a matrix whose rows each are the indices of the elements of X