如何对矩阵进行子集化?

时间:2013-08-08 22:36:30

标签: r matrix subset

如何对矩阵进行子集以获取向量?

> (m <- matrix(1:15,nrow=5,ncol=3))
     [,1] [,2] [,3]
[1,]    1    6   11
[2,]    2    7   12
[3,]    3    8   13
[4,]    4    9   14
[5,]    5   10   15
> (v <- c(1,3))
[1] 1 3
> (u <- c(2,4))
[1] 2 4

我想要的是 vector

> c(m[2,1],m[4,3])
[1]  2 14

但我得到的是一个矩阵:

> m[u,v]
     [,1] [,2]
[1,]    2   12
[2,]    4   14

我想我可以使用diag,但我宁愿一步到位。

1 个答案:

答案 0 :(得分:0)

确保传递索引矩阵:

> m[cbind(u,v)]
[1]  2 14

对于单个点,转置为您提供矩阵:

> m[t(c(4,3))]
[1] 14
> m[t(c(2,1))]
[1] 2