Tôi muốn tổng hợp (tổng) ma trận trong một danh sách theo tên được lưu trữ trong vectơ. Dưới đây một số ví dụ dữ liệu:Làm cách nào để tổng hợp ma trận trong danh sách dựa trên vectơ tên?
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)
kết quả mong đợi của tôi là:
> res
$
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 3 3 6 0 2 1
Vì vậy, các ma trận đầu tiên và thứ ba được tóm tắt (với na.rm = TRUE).
tôi đã cố gắng đầu tiên để tập hợp con các agg.nam:
lapply(lst, function(x) x[, which(names(x) %in% agg.nam)])
nhưng tôi đã thất bại trong thời điểm này, mà không tập hợp.