¿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 valores y extraer, utilizar índices numéricos o lógicos, la caída de los valores mediante el uso de un signo menos, y así sucesivamente.

Cómo utilizar índices numéricos en R

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

gt; first.matrix [1: 2, 2: 3] [, 1] [, 2] [1], 4 7 [2], 5 8

R que devuelve una matriz de nuevo. Prestar 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. Simplemente no se especifica la otra dimensión. Así, se obtiene la segunda y tercera fila de la primera matriz de la siguiente manera:

gt; first.matrix [2: 3,] [, 1] [, 2] [, 3] [, 4] [1], 2 5 8 11 [2], 3 6 9 12

Cómo introducir los valores utilizando índices negativos

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, se pueden obtener todos los valores excepto en la segunda fila y tercera columna de first.matrix Me gusta esto:

gt; 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. Por lo tanto, en este caso, se le cae el segundo elemento en la tercera columna de esta manera:

gt; nr lt; - nrow (first.matrix) gt; carné de identidad lt; - NR * 2 + 2GT; 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 pasó aquí exactamente? Recuerde que las matrices se leen por columnas. Para obtener el segundo elemento en la tercera columna, que tiene que hacer lo siguiente:

  1. Contar el número de filas, usando 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. Contar con dos columnas y luego agregar 2 para obtener el segundo elemento en la tercera columna.

    De nuevo almacenar este resultado en una variable (por ejemplo, carné de identidad).

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

Esto se puede hacer en una sola línea, como este:

gt; 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 los í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 ordenado a los problemas más complejos y, sobre todo, si se necesita el código de correr tan rápido como sea posible.

Artículos Relacionados