Mein Problem ist im Grunde diese:ein Element einer Liste gegeben, wie kann ich wieder in der Liste seinen Index?
ich eine Liste, L haben, wobei jedes Element eine Matrix mit der gleichen Dimension ist. Ich brauche jede Matrix innerhalb dieser Liste mit seinem entsprechenden Elemente in einem Außen Vektor h zu multiplizieren, und dann alle Matrizen summiert.
set.seed(101)
L <- replicate(3,matrix(rnorm(4),2),simplify=FALSE)
h <- 2:4
# I need this
L[[1]]*h[1] + L[[2]]*h[2] +L[[3]]*h[3]
Da ich mit einer unterschiedlichen Anzahl von Matrizen experimentieren muß, und ich habe ein paar von ihnen, ich habe es auf intelligente Weise zu tun. Meine Idee war,
L1 <- lapply(L, function(x) x*h[x])
L2 <- Reduce('+', L1)
Wo "h [x]" würde den Vektor h durch den Index der Matrix x in der Liste L werden die Indizierung, also würde ich also
L1 = list(L[[1]]*h[1], L[[2]]*h[2], L[[3]]*h[3])
bekommen, ist die Frage ist, wie bekomme ich den Index eines Elements in einer Liste, indem ich das Element selbst benutze? Etwas wie h [L [[m1]]] um h [1] zu bekommen.
Oder, wenn Sie irgendeine andere Art und Weise habe mein Problem zu lösen, wie mache ich das?
Könnten Sie das Beispiel Ergänzen Beispiel Matrizen m1 geben, m2, m3? – Frank
das unten von Ben Bolker angegebene Beispiel funktioniert –