从R中的索引集中获取矩阵元素的有效方法是什么?

时间:2015-11-13 21:15:16

标签: r

假设我有一些矩阵

x <- matrix(1:100, 10, 10)

我想获取矩阵的某些元素,这些元素的行和列索引在两个不同的集合中提到,如:

i1 <- c(2, 3, 5, 7)
i2 <- c(1, 7, 9)

现在我的函数应该返回位置(2,1),(3,1),...,(5,9),(7,9)中的元素。即i1包含行索引,i2包含列索引。

2 个答案:

答案 0 :(得分:3)

你的意思是这样吗?

x[as.matrix(expand.grid(i1, i2))]
[1]  2  3  5  7 62 63 65 67 82 83 85 87

答案 1 :(得分:2)

抓住子矩阵:

x[i1, i2]

如果您想将它作为矢量,请换入c()。如果i1i2是行和列名称的逻辑向量或向量,这也适用。有关完整文档,请参阅help("[")