web-dev-qa-db-fra.com

R, accédant à un vecteur de colonne d'une matrice par son nom

Dans R, je peux accéder aux données dans un vecteur de colonne d'une matrice de colonnes comme suit:

mat2[,1]

Chaque colonne de mat2 a un nom. Comment puis-je récupérer les données de la première colonne en utilisant l'attribut name au lieu de [,1]?

Par exemple, supposons que ma première colonne porte le nom de "Saturne". Je veux quelque chose comme

mat2[,1] == mat2[saturn]

19
CodeKingPlusPlus

Ce qui suit devrait le faire:

mat2[,'saturn']

Par exemple:

> x <- matrix(1:21, nrow=7, ncol=3)
> colnames(x) <- paste('name', 1:3)
> x[,'name 1']
[1] 1 2 3 4 5 6 7
20
NPE

Informations supplémentaires (ajout à la première réponse)

x[,c('name 1','name 2')]

retournerait deux colonnes comme si vous l'aviez fait

x[,1:2]

Et enfin, les mêmes opérations peuvent être utilisées pour sous-définir des lignes

x[1:2,]

Et si des lignes étaient nommées ...

x[c('row 1','row 2'),]

Notez la position de la virgule entre parenthèses et par rapport aux indices.

13
ndoogan