2017-09-28 2 views
0

Quand je fais le code simple suivant:par subsetting lignes et colonnes

myMatrix <- matrix(1:15, nrow=3) 
rownames(myMatrix) <- c("A", "B", "C") 
colnames(myMatrix) <- c("A", "B", "C", "D", "E") 
myMatrix1 = myMatrix[A, c("A", "B")] 

je reçois le message d'erreur suivant:

Error in myMatrix[A, c("A", "B")] : subscript out of bounds 

Quel est le problème avec le code? Je veux sous-ensemble de la matrice par ligne particulière et colonne qui évidemment existent dans cette matrice ...

+0

Par commodité, l'objet LETTRES est disponible. Essayez 'LETTRES [1: 3]' dans votre console. – lmo

+0

Merci! Cela aide (mais n'est pas fourni dans les exemples de sous-ensembles pour une raison quelconque). Mais maintenant les noms des lignes sont supprimés de la nouvelle matrice. Est-ce possible de les garder? –

Répondre

0

L'erreur est basée sur l'index de nom de ligne qui devrait être cité

myMatrix ["A", c("A", "B"), drop = FALSE] 

Sinon, il pense que 'A' est un objet qui stocke certains noms de lignes

+0

Merci! Cela aide (mais n'est pas fourni dans les exemples de sous-ensembles pour une raison quelconque). Mais maintenant les noms des lignes sont supprimés de la nouvelle matrice. Est-ce possible de les garder? –

+0

@AlexM Nous devons ajouter 'drop = FALSE' pour éviter que la matrice ne soit convertie en' vector' quand il n'y a qu'une seule ligne – akrun