R:从矩阵中提取两个元素

时间:2020-09-05 11:30:12

标签: r matrix indexing

我有以下矩阵 mat

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

,我想提取[2,1]和[3,2]的元素。换句话说,我希望输出为4和8。

> mat[[2,1], [3,2]] 

不起作用(错误),并且

> mat[c(2,3), c(1,2)]
     [,1] [,2]
[1,]    4    5
[2,]    7    8

也不正确。

用一行代码提取4和8的正确方法是什么?

我知道我可以分别提取它们,然后将它们放入相同的向量中,但是那不是我想要的方式...我想知道是否有更清洁的方法。

1 个答案:

答案 0 :(得分:2)

您可以cbind / rbind个位置来创建一个矩阵,该矩阵可用于从mat获取值。

mat <- matrix(1:9, nrow = 3, byrow = TRUE)
mat[cbind(c(2, 3), c(1, 2))]
#With rbind
#mat[rbind(c(2, 1), c(3, 2))]
#[1] 4 8