假设我有一些矩阵
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
包含列索引。
答案 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()
。如果i1
和i2
是行和列名称的逻辑向量或向量,这也适用。有关完整文档,请参阅help("[")
。