在没有for循环的情况下索引数组中位置的组合

时间:2019-01-30 08:31:31

标签: r indexing

我有一个“查找数组” h,我想在其中查找某些参数组合。 出于计算时间的原因,我不想循环使用for循环进行组合。

h[,,1]
1 2 3
4 5 6
7 8 9

h[,,2]
10 11 12
13 14 15
16 17 18

...

我现在想要类似的组合

h[3,2,1]
h[2,2,2]
h[3,1,1]

写为

a<-c(3,2,39
b<-c(2,2,1)
c<-c(1,2,1)
h[a,b,c]

,结果应为向量:

  

6 14 2

不用说这是行不通的,相反,R为我提供了所有可能的参数组合。

使用

重新创建示例
h<-array(1:(3*3*5),dim=c(3,3,5))

structure(1:45, .Dim = c(3L, 3L, 5L))

1 个答案:

答案 0 :(得分:0)

我找到了一种方法,可以通过将a,b和c转换为矩阵使用indind cbind() 然后简单地索引

h[cbind(a,b,c)]