2010-07-07 9 views

Respuesta

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

Si arr.ind == TRUE y X es una matriz, el resultado es una matriz cuyas filas son los índices de los elementos de X

6

Hay un error en su código de ejemplo: True no está definido, use TRUE.

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

que debería hacerlo:

which(!X == 0) 
X[ which(!X == 0)] 
#[1] 1 4 3 5 

para obtener los índices de fila/COL:

row(X)[which(!X == 0)] 
col(X)[which(!X == 0)] 

de utilizar los indexar de nuevo en la matriz:

X[cbind(row(X)[which(!X == 0)], col(X)[which(!X == 0)])] 
    #[1] 1 4 3 5 
Cuestiones relacionadas