2016-10-03 1 views
-4

Sagen wir, ich habe eine Liste von 3 Matrizen. Wie extrahiere ich eine der Matrizen als Matrix-Objekt, damit ich mit mymatrix[i,j] Aufrufen weiter auf ihre Elemente zugreifen kann?Extrahieren Matrix aus Liste der Matrizen

mylist[i] gibt einfach ein List-Object mit Matrix i zurück.

Ich bin sicher, dass es eine einfache Lösung geben muss, aber ich konnte es nicht finden.

Antwort

2

Verwendung doppelte eckige Klammern: mylist[[i]] ....

Von ?"[[" (Hervorhebung hinzugefügt):

rekursive (list-like) Objekte:

Indizierung von '[' ist ähnlich atomare Vektoren und wählt eine Liste von das angegebene Element (e).

Beide '[' 'und' $ 'wählen ein einzelnes Element der Liste. Der Haupt Unterschied ist, dass ‚$‘ nicht berechneten Indizes erlauben,

+0

Das war peinlich einfach. Vielen Dank ... –

2

mylist[[1]] zurückkehren sollte Ihnen die erste Matrix

mylist[[3]] sollten Sie die dritte Matrix zurückkehren

1

Wenn Sie das Sie automatisieren möchten könnte einfach laufen:

for (index in 1:length(mylist)){ 
    assign(paste0("matrix", index), mylist[[index]], envir = .GlobalEnv) 
} 
Verwandte Themen