假设我有两个矩阵:
> a
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 6 10 5 7 2 2 6
[2,] 10 6 7 7 4 3 12
[3,] 11 10 2 10 6 11 9
并且
> b
[,1] [,2] [,3]
[1,] 4 1 4
[2,] 3 6 3
[3,] 2 5 2
a
和b
中的行数相同。我正在寻找一种向量化的方法,以逐行基础从a
中提取由b
中列号指示的项。因此,结果c
应如下所示:
> c
[,1] [,2] [,3]
[1,] 7 6 7
[2,] 7 3 7
[3,] 10 6 10
a[,b[1,]]
或 a[,b[2,]]
或 a[,b[3,]]
只能正确地处理行 1、2 和 3 的结果。这是否可以通过简单的矩阵函数完成?是否需要使用 apply
函数?我试图改编一个类似问题的解决方案,参见使用行列索引从矩阵中获取值,但是不理解在这里如何使用 cbind 提取矩阵元素。