我有两个数组: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,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的子索引?
答案 0 :(得分:3)
尝试使用cbind
创建索引矩阵:
P[cbind(1, arr)]
虽然注意您可能需要更改arr
的列顺序,以便第二列首先出现,因为您的第二个维度是具有8个可能值的维度。也许吧:
P[cbind(1, arr[, 2:1])]