gpt4 book ai didi

r - 从矩阵列表中获取选定的矩阵列

转载 作者:行者123 更新时间:2023-12-05 00:27:05 25 4
gpt4 key购买 nike

我有一个具有相同维度的矩阵列表,例如:

mat.list=rep(list(matrix(rnorm(n=12,mean=1,sd=1), nrow = 3, ncol=4)),3)

我正在寻找一种有效的方法来从列表中的每个矩阵中检索一列,其中每个矩阵中感兴趣的列索引由向量指定。例如,对于这个列索引向量:
idx.vec=c(3,2,3)

我想从矩阵 1 中获取第 3 列,从矩阵 2 中获取第 2 列,从矩阵 3 中获取第 3 列作为矩阵,以便该矩阵维度是列表中矩阵的行数乘以矩阵中的矩阵数列表。

对于此示例,结果将是:
cbind(mat.list[[1]][,3],mat.list[[2]][,2],mat.list[[3]][,3])
[,1] [,2] [,3]
[1,] 1.4852810 1.305448 1.4852810
[2,] 1.8647327 -1.237507 1.8647327
[3,] -0.0416013 2.156055 -0.0416013

最佳答案

一种可能的方法是 mapply('[', mat.list, TRUE, idx.vec) .诀窍是使用 '['用于子集和 TRUE作为选择所有行的参数。下面是它的工作原理:

'['(matrix(1:4, ncol = 2), TRUE, 2)
# [1] 3 4

关于r - 从矩阵列表中获取选定的矩阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21210655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com