我宣布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衰变成向量时,这会中断...
谢谢
使用,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)
这很可能是在主要的常见问题,但出于兼容性考虑的行为是不可能改变的.