Como usar operações padrão em uma matriz na r

Provavelmente a característica mais forte de R é a sua capacidade para lidar com as operações da matriz complexos em uma maneira fácil e otimizado. Porque grande parte das estatísticas resume-se a operações da matriz, é apenas natural que R adora mastigar esses números.

Video: Como Elaborar um Procedimento Operacional Padrão

Ao falar sobre as operações em matrizes, você pode tratar tanto os elementos da matriz ou toda a matriz como o valor que você operar. Essa diferença é muito clara quando se compara, por exemplo, transposição de uma matriz e adicionando um único número (ou escalar) A uma matriz.

Aquando da transposição, você trabalha com toda a matriz. Ao adicionar um escalar a uma matriz, você acrescentar que escalar a cada elemento da matriz.

Você adiciona um escalar a uma matriz simplesmente usando o operador de adição, +, como isso:

gt; first.matrix + 4 [, 1] [, 2] [, 3] [, 4] [1,] 5 8 11 14 [2,] 6 12 9 15 [3,] 7 10 13 16

Você pode usar todos os outros operadores aritméticos exatamente da mesma maneira de executar uma operação em todos os elementos de uma matriz.

Video: Matrizes - Aula 2 - Operações com Matrizes - Prof. Gui

A diferença entre as operações em matrizes e elementos torna-se menos clara se você falar sobre a adição de matrizes juntos. De facto, a adição de duas matrizes é a adição dos elementos que respondem. Então, você precisa ter certeza de ambas as matrizes têm as mesmas dimensões.

Vejamos outro exemplo: Digamos que você queira adicionar 1 para a primeira linha, 2 para a segunda fila, e 3 para a terceira linha da matriz first.matrix. Você pode fazer isso através da construção de uma matriz second.matrix que tem quatro colunas e três linhas e que tem 1, 2, e 3 como valores na primeira, segunda, e terceira filas, respectivamente.

O comando a seguir faz isso usando a reciclagem do primeiro argumento pela função de matriz:



gt; second.matrix lt; - matriz (1: 3, nrow = 3, ncol = 4)

Com o operador de adição, você pode adicionar ambas matrizes juntos, como este:

gt; first.matrix + second.matrix [, 1] [, 2] [, 3] [, 4] [1,] 2 5 8 11 [2], 4 7 10 13 [3,] 6 9 12 15

Esta é a solução seu professor de matemática aprovaria se ela lhe pediu para fazer a adição de matrizes da primeira e segunda matriz. E ainda mais, se as dimensões das duas matrizes não são os mesmos, R vai reclamar e recusar-se a realizar a operação, como mostrado no exemplo que se segue:

gt; first.matrix + second.matrix [, 1: 3] erro em first.matrix + second.matrix [, 1: 3]: matrizes não-moldáveis

Mas o que aconteceria se em vez de adicionar uma matriz, você adicionou um vetor? Dê uma olhada no resultado do seguinte código:

gt; first.matrix + 1: 3 [, 1] [, 2] [, 3] [, 4] [1,] 2 5 8 11 [2], 4 7 10 13 [3,] 6 9 12 15

Não só R não reclamar sobre as dimensões, mas recicla o vetor sobre os valores das matrizes. Na verdade, trata R a matriz como um vector, neste caso, simplesmente ignorando as dimensões. Então, neste caso, você não usar adição de matrizes, mas (vectorized) simples adição.

Por padrão, R enche matrizes coluna-wise. Sempre que R lê uma matriz, que também lê-lo direcção de coluna. Isto tem implicações importantes para o trabalho com matrizes. Se você não ficar ciente disso, R pode morder-lhe na perna nastily.


Publicações relacionadas