【问题标题】:How to index R matrix without it reverting to vector如何在不恢复为向量的情况下索引 R 矩阵
【发布时间】:2012-02-19 00:07:58
【问题描述】:

我声明了一个 1 x 6 矩阵 A:

A <- matrix(1:6, nrow=1)

然后我做 dim(A) 并且正如预期的那样我得到 1 x 6...但是我做 A[,2:5] 我希望它是一个维度为 1 x 4 的矩阵,条目为 2, 3,4,5...但是 dim( A[,2:5] ) 给了我 NULL!它退化为向量或其他东西。我怎样才能避免这种情况?

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

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

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

谢谢

【问题讨论】:

    标签: r vector matrix


    【解决方案1】:

    使用,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> 
    

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

    【讨论】:

    • 很高兴听到这个消息。在这种情况下,通过单击勾选标记来“接受”最佳答案是很常见的,只有您作为问题的原始发布者才能做到这一点。
    • 'The R Inferno'burns-stat.com/pages/Tutor/R_inferno.pdf987654321@ 的第 8.1.44 圈
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 2015-06-26
    • 1970-01-01
    • 2016-05-18
    • 2016-04-24
    • 1970-01-01
    相关资源
    最近更新 更多