我有1800个矩阵的列表,其尺寸为7 x 7.我正在尝试获取前2行和列的元素,并在对它们进行Map乘法之前将其转换为2 x 2矩阵的列表最终替换原始7 x 7矩阵列表中的值。
我的代码是:
PreMultiply_matrixList <- list()
PreMultiply_matrixList <- sapply(Probability_matrixList, "[", c(1:2),c(1:2))
Probability_matrixList是7 x 7矩阵的列表。
然而,PreMultiply_matrixList似乎只复制了每个矩阵的第一个元素,而不是2x2矩阵。
我也尝试过来自不同帖子的类似代码,例如:
PreMultiply_matrixList <- sapply(Probability_matrixList,"[",1:2,1:2)
你会怎么做?然后将(使用Map)与另一个列表相乘,然后替换原始Probability_matrixList上的值?
提前致谢。
答案 0 :(得分:1)
第一步,根据上述评论:
PreMultiply_matrixList <- lapply(Probability_matrixList,"[",1:2,1:2)
第二步,使用map
取决于你。
第三步,将新的2x2矩阵(我们称之为PostMultiply_matrixList
)放入原始矩阵列表中,这可能有效:
Probability_matrixList2 <- lapply(1:length(Probability_matrixList),
function(x) {
Probability_matrixList[[x]][1:2,1:2] <- PostMultiply_matrixList[[x]]
Probability_matrixList[[x]]
})