使用两个矩阵的值来索引第三个矩阵(在R中)。

3

我正在优化一段更加复杂的代码,但是遇到了这个问题。

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)) 

我需要使用a和m中的值来索引f并将f中的值赋给g, 即 g[1,1]<-f[a[1,1],m[1,1]],除了所有的索引之外,并且要尽可能地优化/快速完成。
我可以用for循环来完成这个任务,但这似乎很愚蠢而且很慢。我应该能够在apply族函数中使用一些东西来完成此操作,但是我还没有弄清楚如何做到这一点。我确实需要保持数据的结构,以便在代码的不同部分使用矩阵运算。我一直在寻找答案,但还没有找到特别有帮助的东西。
1个回答

7
g[] <- f[cbind(c(a), c(m))]

这利用了矩阵可以被视为向量并使用矩阵作为索引的事实。

谢谢!那太完美了。 - arudolph.bio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接