2017-01-09 6 views
1

Ich habe zwei Listen von Matrizen, LIST1 (Größe m) und LIST2 (Größe n). Jede Matrix von LIST1 hat die Größe (p,q) und LIST2 enthält Spaltenmatrizen der Größe (p,1). Ich möchte jede der LIST2-Spaltenmatrizen mit jeder LIST1 kombinieren. Ich habe versucht lapply, aber konnte das nicht herausfinden. Die Größe der Ausgabeliste ist mnKonkatinieren von zwei verschiedenen Größen von Listen in R

Antwort

3

Sie können eine verschachtelte Schleife machen mit lapply:

unlist(lapply(LIST1, function(x) lapply(LIST2, cbind, x)), recursive = F) 

Hier ist ein kleines reproduzierbares Beispiel:

LIST1 <- list(matrix(1:4, nrow = 2), matrix(2:5, nrow = 2)) 
LIST2 <- list(matrix(1:2, nrow = 2)) 
unlist(lapply(LIST1, function(x) lapply(LIST2, cbind, x)), recursive = F) 

#[[1]] 
#  [,1] [,2] [,3] 
#[1,] 1 1 3 
#[2,] 2 2 4 

#[[2]] 
#  [,1] [,2] [,3] 
#[1,] 1 2 4 
#[2,] 2 3 5 
+0

'Karte (cbind, LIST2 , LIST1) '? Ich bin mir nicht sicher, ob ich die Frage falsch interpretiere? – thelatemail

+1

@thelatemail Ich denke OP will alle Kombinationen aus den beiden Listen. Mit der Größe von m * n. – Psidom

Verwandte Themen