¿Cómo extraer valores de una matriz en la r

Puede utilizar estos índices de la misma manera que utiliza vectores en R. Puede asignar y valores de extracto, utilizar índices numéricos o lógicos, soltar los valores mediante el uso de un signo menos, y así sucesivamente.

Cómo utilizar los índices numéricos en R

Por ejemplo, puede extraer los valores en las dos primeras filas y las últimas dos columnas con el siguiente código:

> First.matrix [1: 2, 2: 3] [, 1] [, 2] [1,] 4 7 [2], 5 8

R que devuelve una matriz de nuevo. Preste atención a los índices de esta nueva matriz - no son los índices de la matriz original más.

R le proporciona una manera fácil de extraer filas y columnas completas a partir de una matriz. Usted simplemente no especifica la otra dimensión. Así, se obtiene la segunda y la tercera fila de la primera matriz de la siguiente manera:

> First.matrix [2: 3,] [, 1] [, 2] [, 3] [, 4] [1], 2 5 8 11 [2], 3 6 9 12

Cómo colocar valores utilizando índices negativos

Usted puede dejar los valores en un vector mediante el uso de un valor negativo para el índice. Este pequeño truco funciona perfectamente bien con matrices, también. Por lo tanto, usted puede conseguir todos los valores, excepto la segunda fila y tercera columna de first.matrix Me gusta esto:

> First.matrix [-2, -3] [1] [2] [3] [1], 1 4 10 [2], 3 6 12

Con matrices, un índice negativo significa siempre: " La caída de la fila o columna completa ". Si quieres dejar sólo el elemento en la segunda fila y la tercera columna, hay que tratar a la matriz como un vector. Así que, en este caso, se le cae el segundo elemento de la tercera columna de la siguiente manera:

> Nr lt; - nRow (first.matrix)> Identificación lt; - NR * 2 + 2> first.matrix [-id] [1] 1 2 3 4 5 6 7 9 10 11 12

Esto devuelve un vector, porque los 11 elementos restantes no encajan en una matriz más. Ahora lo que sucedió aquí exactamente? Recuerde que las matrices se leen por columnas. Para conseguir el segundo elemento en la tercera columna, debe hacer lo siguiente:

  1. Cuente el número de filas, utilizando nRow (), y almacenar en una variable que - por ejemplo, nr.

    Usted no tiene que hacer esto, pero hace que el código sea más fácil de leer.

  2. Cuente dos columnas y luego agregar 2 para obtener el segundo elemento en la tercera columna.

    Una vez más almacenar este resultado en una variable (por ejemplo, Identificación).

  3. Utilice la unidimensional extracción vectorial [] para dejar este valor.

Usted puede hacer esto en una sola línea, así:

> First.matrix [- (2 * nRow (first.matrix) + 2)] [1] 1 2 3 4 5 6 7 9 10 11 12

Este es sólo un ejemplo de cómo se puede trabajar con índices, mientras que el tratamiento de una matriz como un vector. Se requiere un poco de pensar en un primer momento, pero trucos como estos puede ofrecer soluciones muy aseados a los problemas más complejos y, sobre todo, si usted necesita el código para correr tan rápido como sea posible.




» » » » ¿Cómo extraer valores de una matriz en la r