如何索引R矩阵而不将其恢复为向量

时间:2012-01-25 19:26:40

标签: r vector matrix

我通过说:

宣布1乘6矩阵A.
A <- matrix(1:6, nrow=1)

然后我做暗淡(A)并且按照预期我得到1乘6 ...然后我做A [,2:5]我希望这是一个1到4的矩阵,带有条目2, 3,4,5 ......但是暗淡(A [,2:5])给我NULL!它降级为矢量或其他东西。我怎么能避免这个?

我最终会尝试做类似的事情:

A[,a:b] %*% X[a:b,a:b] %*% t(A[,a:b])

改变a和b所以我只能将上述矩阵的一部分相乘...但是当A衰变成向量时,这会中断......

由于

1 个答案:

答案 0 :(得分:9)

使用,drop=FALSE作为涉及]的附加(尾随)参数。

示例:

R> M <- matrix(1:4,2,2)
R> M[,2]                  ## looses matrix class
[1] 3 4
R> M[,2,drop=FALSE]       ## forced to a n x 1 matrix
     [,1]
[1,]    3
[2,]    4
R> 

这可能是 主要常见问题解答,但出于兼容性原因,行为不太可能发生变化。