2017-09-28 5 views
0

Wenn ich den folgenden einfachen Code:subsetting von Zeilen und Spalten

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")] 

Ich erhalte die folgende Fehlermeldung:

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

Was mit dem Code falsch? Ich mag die Matrix durch bestimmte Zeile und Spalte der Teilmenge, die offensichtlich in dieser Matrix existiert ...

+0

Der Einfachheit halber ist das Objekt LETTERS verfügbar. Probieren Sie 'LETTERS [1: 3]' in Ihrer Konsole aus. – lmo

+0

Danke! Das hilft (obwohl es aus irgendeinem Grund nicht in Beispielen für das Subsetting enthalten ist). Aber jetzt werden die Namen der Zeilen aus der neuen Matrix gelöscht. Ist das möglich, um sie zu behalten? –

Antwort

0

Der Fehler auf dem Zeilennamen Index basiert, die

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

Ansonsten angegeben werden soll, es denkt, dass 'A' ist ein Objekt, das einige Zeilennamen speichert

+0

Danke! Das hilft (obwohl es aus irgendeinem Grund nicht in Beispielen für das Subsetting enthalten ist). Aber jetzt werden die Namen der Zeilen aus der neuen Matrix gelöscht. Ist das möglich, um sie zu behalten? –

+0

@AlexM Wir müssen 'drop = FALSE' hinzufügen, um zu vermeiden, dass die Matrix in' vector' konvertiert wird, wenn nur eine Zeile existiert – akrun