Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将数组用作较大维度数组的子索引_R_Multidimensional Array - Fatal编程技术网

R 将数组用作较大维度数组的子索引

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

我有两个数组: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的子索引?

尝试使用
cbind
创建索引矩阵:

P[cbind(1, arr)]
尽管注意,您可能需要更改
arr
的列顺序,以便第二列位于第一列,因为您的第二个维度是具有8个可能值的维度。所以也许:

P[cbind(1, arr[, 2:1])]

@布罗迪格解决了我的问题。谢谢