Comment extraire des valeurs d'une matrice dans r

Vous pouvez utiliser ces indices de la même manière que vous utilisez des vecteurs dans R. Vous pouvez attribuer des valeurs et de l'extrait, utiliser des indices numériques ou logiques, d'abandon des valeurs en utilisant un signe moins, et ainsi de suite.

Sommaire

Comment utiliser des indices numériques dans R

Par exemple, vous pouvez extraire les valeurs dans les deux premières lignes et les deux dernières colonnes avec le code suivant:

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

R vous renvoie à nouveau une matrice. Faites attention aux indices de cette nouvelle matrice - ils ne sont pas les indices de la matrice d'origine plus.

R vous donne un moyen facile d'extraire des lignes complètes et de colonnes d'une matrice. Vous simplement ne spécifiez pas l'autre dimension. Ainsi, vous obtenez la deuxième et la troisième rangée de votre première matrice comme ceci:

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

Comment déposer valeurs à l'aide des indices négatifs

Vous pouvez déposer des valeurs dans un vecteur en utilisant une valeur négative pour l'indice. Cette petite astuce fonctionne parfaitement bien avec des matrices, aussi. Ainsi, vous pouvez obtenir toutes les valeurs sauf la deuxième ligne et la troisième colonne du first.matrix comme ça:

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

Avec des matrices, un indice négatif signifie toujours: “ Drop the ligne ou une colonne complète ”. Si vous souhaitez déposer seul l'élément à la deuxième ligne et la troisième colonne, vous avez à traiter la matrice comme un vecteur. Donc, dans ce cas, vous déposez le second élément dans la troisième colonne comme ceci:

> Nr lt; - nrow (first.matrix)> ID lt; - nr * 2 + 2> first.matrix [-id] [1] 1 2 3 4 5 6 7 9 10 11 12

Cela renvoie un vecteur, parce que les 11 éléments restants ne plus rentrent pas dans une matrice. Maintenant ce qui est arrivé ici exactement? Rappelez-vous que les matrices sont lus par colonne. Pour obtenir le deuxième élément dans la troisième colonne, vous devez faire ce qui suit:

  1. Comptez le nombre de lignes, à l'aide nrow (), et stocker que dans une variable - par exemple nr.


    Vous n'êtes pas obligé de le faire, mais il rend le code plus facile à lire.

  2. Comptez deux colonnes, puis ajouter 2 pour obtenir le second élément dans la troisième colonne.

    Encore une fois stocker ce résultat dans une variable (par exemple, id).

  3. Utilisez le unidimensionnel extraction de vecteur [] à déposer cette valeur.

Vous pouvez faire cela en une ligne, comme ceci:

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

Ceci est juste un exemple de la façon dont vous pouvez travailler avec des indices tout en traitant une matrice comme un vecteur. Il nécessite un peu de penser au premier abord, mais des trucs comme ceux-ci peuvent offrir des solutions très soignées à des problèmes plus complexes aussi bien, surtout si vous avez besoin de votre code à courir aussi vite que possible.


» » » » Comment extraire des valeurs d'une matrice dans r