Dada una matriz:R - posición de retorno del elemento en la matriz?
[,1] [,2]
[1,] 0 0.0
[2,] -1 0.8
¿Cuál es la forma más rápida en I para iterar sobre la matriz y devolver la posición de todas las entradas no cero como un índice?
Dada una matriz:R - posición de retorno del elemento en la matriz?
[,1] [,2]
[1,] 0 0.0
[2,] -1 0.8
¿Cuál es la forma más rápida en I para iterar sobre la matriz y devolver la posición de todas las entradas no cero como un índice?
Aquí es uno de los enfoques
mat = matrix(rnorm(9), 3, 3)
which(mat !=0, arr.ind = T)
¡Me alegra que estés de acuerdo! –
@Cotton: la respuesta de Ramnath agregó la información muy utilizada de que había un parámetro de adición al cual se produce un resultado orientado a la matriz. Así que no lo vi aceptar tanto como hacer un mejor trabajo al inferir lo que el OP quería. –
@DWin Err, ¿no es eso lo que hace el 'VERDADERO' en el código R de @Ritchie después de "o quizás"? Mala forma en un ambiente de enseñanza para no nombrar argumentos, pero las dos respuestas son las mismas. –
m <- matrix(c(0, 1, 1, 0), nrow = 2)
which(m != 0)
o tal vez
which(m != 0, TRUE)
Su pregunta debería ser "que es la forma más rápida?" Entonces también se contestaría a sí mismo;) – hadley
Me he estado riendo de esta broma de "cuál es la manera más rápida" durante dos días. Lo hice en una publicación de blog Me gusta mucho. –