Comment faire matrice arithmétique dans r

Outre les opérateurs arithmétiques classiques, R contient un grand nombre d'opérateurs et de fonctions pour effectuer un large éventail d'opérations matricielles. Beaucoup de ces opérations sont utilisés dans les mathématiques avancées, de sorte que vous peut-être jamais besoin d'eux. Certains d'entre eux peuvent venir très pratique, cependant, si vous avez besoin de retourner autour des données ou si vous voulez calculer des statistiques vous-même.

Sommaire

Transposer une matrice en R

Retournement autour d'une matrice de sorte que les lignes deviennent les colonnes et vice versa est très facile dans R. Le t () fonction (qui signifie transposer) Fait tout le travail pour vous:

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

Vous pouvez essayer avec un vecteur, aussi. Comme matrices sont lus et par colonne remplies, il ne devrait pas venir comme une surprise que le t () fonction voit un vecteur comme une matrice à une colonne. La transposition d'un vecteur est, donc, une matrice d'une seule ligne:




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

Vous pouvez dire cela est une matrice par les dimensions. Cette information semble trivial par la manière, mais imaginez vous sélectionnez une seule ligne à partir d'une matrice et sa transposition. Contrairement à ce que vous attendez, vous obtenez une ligne à la place d'une colonne:

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

Inverser une matrice en R

Contrairement à votre intuition, inversion d'une matrice ne se fait pas en l'élevant à la puissance de -1, R applique normalement les opérateurs arithmétiques élément par élément sur la matrice. Ainsi, la commande first.matrix ^ (- 1) ne vous donne pas l'inverse de la matrice-place, il vous donne l'inverse des éléments. Pour inverser une matrice, vous utilisez le solve () fonction, comme ceci:

> Square.matrix lt; - matrice (c (1,0,3,2,2,4,3,2,1), ncol = 3)> résoudre (square.matrix) [1] [2] [3] [ 1,] 0,5 -0,8333333 0.1666667 [2], -0.5 0,6666667 0,1666667 [3], 0,5 -0,1666667 -0,1666667

Soyez prudent inversion d'une matrice comme cela parce que le risque d'erreurs d'arrondi. R calcule la plupart des statistiques basées sur des décompositions comme la décomposition QR, la décomposition à valeur unique, et la décomposition de Cholesky. Vous pouvez faire vous-même en utilisant les fonctions QR (), svd (), et chol (), respectivement. Consultez les pages correspondantes de l'aide pour plus d'informations.

Multiplier deux matrices en R

L'opérateur de multiplication (*) Fonctionne élément par élément sur les matrices. Pour calculer le produit scalaire de deux matrices, vous utilisez l'opérateur spéciale % *%, comme ça:

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

Vous avez pour transposer la second.matrix Prénom contraire, les deux matrices ont des dimensions non-concordantes. Multipliant une matrice avec un vecteur est un peu spéciale dence aussi longtemps que les dimensions correspondent, R convertira automatiquement le vecteur soit une ligne ou une matrice de la colonne, ce qui est applicable dans ce cas. Vous pouvez vérifier par vous-même dans l'exemple suivant:

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

» » » » Comment faire matrice arithmétique dans r