R 将数组用作较大维度数组的子索引
我有两个数组:p和arr,它们的维数是:R 将数组用作较大维度数组的子索引,r,multidimensional-array,R,Multidimensional Array,我有两个数组:p和arr,它们的维数是: > dim(arr) [1] 8 2 > dim(P) [1] 3 8 2 然后,arr具有值 > arr [,1][,2] [1,] 2 1 [2,] 1 2 [3,] 1 3 [4,] 1 4 [5,] 2 5 [6,] 2 6 [7,] 2 7 [8,] 2 8 它们是p矩阵的子索引。所以,我想做的是这样的事情 P[1
> dim(arr)
[1] 8 2
> dim(P)
[1] 3 8 2
然后,arr具有值
> arr
[,1][,2]
[1,] 2 1
[2,] 1 2
[3,] 1 3
[4,] 1 4
[5,] 2 5
[6,] 2 6
[7,] 2 7
[8,] 2 8
它们是p矩阵的子索引。所以,我想做的是这样的事情
P[1,arr]
获取值
P[1,2,1]
P[1,1,2]
P[1,1,3]
...
P[1,2,8]
,但p[1,arr]给出了错误
Error in P[1, arr] : incorrect number of dimensions
如何使用arr作为p的子索引?尝试使用
cbind
创建索引矩阵:
P[cbind(1, arr)]
尽管注意,您可能需要更改arr
的列顺序,以便第二列位于第一列,因为您的第二个维度是具有8个可能值的维度。所以也许:
P[cbind(1, arr[, 2:1])]
@布罗迪格解决了我的问题。谢谢