我有以下矩阵 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的正确方法是什么?
我知道我可以分别提取它们,然后将它们放入相同的向量中,但是那不是我想要的方式...我想知道是否有更清洁的方法。
答案 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