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

Pal*_*han 6 r vector matrix

我宣布1乘6矩阵A说:

A <- matrix(1:6, nrow=1)
Run Code Online (Sandbox Code Playgroud)

我然后做暗淡(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])
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Dir*_*tel 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> 
Run Code Online (Sandbox Code Playgroud)

这很可能是在主要的常见问题,但出于兼容性考虑的行为是不可能改变的.

  • 很高兴听你这样说.在这种情况下,通过点击勾号来"接受"最佳答案是常见的,只有你作为问题的原始海报才能做到这一点. (3认同)
  • "The R Inferno"的圈子8.1.44 http://www.burns-stat.com/pages/Tutor/R_inferno.pdf (2认同)