Como fazer Matrix Aritmética em R

Além dos operadores aritméticos clássicos, R contém um grande conjunto de operadores e funções para executar um amplo conjunto de operações de matriz. Muitas dessas operações são usados ​​em matemática avançada, então você nunca pode precisar deles. Alguns deles podem vir em muito útil, no entanto, se você precisa virar em torno de dados ou você deseja calcular algumas estatísticas si mesmo.

Transposição de uma matriz em R

Lançando em torno de uma matriz de modo que as linhas se convertem em colunas e vice-versa é muito fácil no R. A T () função (que significa transpor) Faz todo o trabalho para você:

> T (first.matrix) [, 1] [, 2] [, 3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 [4], 10 11 12

Você pode tentar isso com um vector também. Como matrizes são lidos e cheio coluna-wise, ele não deve vir como uma surpresa que o T () função vê um vector tal como uma matriz de uma coluna. A transposição de um vector é, assim, uma matriz com uma linha:

> T (01:10) [, 1] [, 2] [, 3] [, 4] [, 5] [, 6] [, 7] [, 8] [, 9] [, 10] [1, ] 1 2 3 4 5 6 7 8 9 10

Você pode dizer isso é uma matriz pelas dimensões. Esta informação parece trivial pelo caminho, mas imagine que você está selecionando apenas uma linha a partir de uma matriz e sua transposição. Ao contrário do que seria de esperar, você tem uma linha em vez de uma coluna:

> T (first.matrix [2,]) [, 1] [, 2] [, 3] [, 4] [1,] 2 5 8 11

Inverter uma matriz em R

Contrariamente à sua intuição, inverter uma matriz não é feito por elevando-o para o poder de -1, R normalmente aplica os operadores aritméticos elemento a elemento na matriz. Assim, o comando first.matrix ^ (- 1) não lhe dá o inverso da matriz-em vez disso, dá-lhe a inversa dos elementos. Para inverter uma matriz, você pode usar o resolver() função, como este:

> square.matrix lt; - matriz (c (1,0,3,2,2,4,3,2,1), ncol = 3)> resolver (square.matrix) [, 1] [, 2] [, 3] [ 1,] 0,5 -,8333333 0,1666667 [2], -0.5 0,6666667 0,1666667 [3], 0,5 -,1666667 -,1666667

Tenha cuidado para inverter uma matriz como este por causa do risco de erros de arredondamento. R calcula a maioria das estatísticas baseadas em decomposição, como a decomposição QR, decomposição de valor único, e decomposição Cholesky. Você pode fazer isso sozinho usando as funções qr (), svd (), e Chol (), respectivamente. Verifique as respectivas páginas de ajuda para mais informações.

Multiplicar duas matrizes em P

O operador de multiplicação (*) Funciona elemento-wise em matrizes. Para calcular o produto interno de duas matrizes, você usa o operador especial % *%, como isso:

> First.matrix% *% T (second.matrix) [, 1] [, 2] [, 3] [1,] 22 44 66 [2,] 26 52 78 [3], 30 60 90

Você tem que transpor a second.matrix primeiro- de outra forma, ambas as matrizes têm dimensões não-moldáveis. A multiplicação de uma matriz com um vector é um pouco de um caso-especial desde que as dimensões se encaixam, R converterá automaticamente o vetor de uma linha ou uma matriz coluna, o que quer que seja aplicável nesse caso. Você pode verificar por si mesmo no exemplo a seguir:

> First.matrix% *% 1: 4 [, 1] [1], 70 [2], 80 [3,] 90> 1: 3% *% first.matrix [, 1] [, 2] [, 3 ] [1 [, 4],] 14 32 50 68

menu