Voglio aggregare (sommare) matrici all'interno di una lista secondo i nomi memorizzati in un vettore. Ecco alcuni dati esempio:Come aggregare matrici in un elenco basato sul vettore di nomi?
lst <- list("111"=matrix(c(1, 0, 6, NA, 1, 0),
nrow = 1, byrow = T),
"112"=matrix(c(6, 2, 2, 0, 3, NA),
nrow = 1, byrow = T),
"113"=matrix(c(2, 3, 0, 0, 1, 1),
nrow = 1, byrow = T))
agg.nam <- c(111,113)
mio risultato atteso è:
> res
$
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 3 3 6 0 2 1
Così, il primo e terzo matrici si riassumono (con na.rm = TRUE).
ho provato prima a sottoinsieme del agg.nam:
lapply(lst, function(x) x[, which(names(x) %in% agg.nam)])
ma ho già fallito in questo punto, senza aggregazione.