使用2个矩阵中的值来索引R中的第三个

aru*_*bio 3 r matrix apply

我正在优化更复杂的代码,但却遇到了这个问题.

a<-array(sample(c(1:10),100,replace=TRUE),c(10,10))  
m<-array(sample(c(1:10),100,replace=TRUE),c(10,10))  
f<-array(sample(c(1:10),100,replace=TRUE),c(10,10))  
g<-array(NA,c(10,10)) 
Run Code Online (Sandbox Code Playgroud)

我需要使用a和m中的值来索引f并将值从f分配给g,
g[1,1]<-f[a[1,1],m[1,1]]除了所有索引之外,并且尽可能最佳/最快

我显然可以为我做一个for循环,但这似乎相当愚蠢和缓慢.看起来我应该能够在申请家庭中找到一些东西,但我找不到如何做到这一点我没有运气.我确实需要保持数据结构在这里,以便我可以在代码的不同部分使用矩阵运算.我一直在寻找这个问题的答案,但还没有发现任何特别有用的东西.

Nic*_*edy 7

g[] <- f[cbind(c(a), c(m))]
Run Code Online (Sandbox Code Playgroud)

这利用了矩阵可以作为向量寻址并使用矩阵作为索引的事实.