fot*_*ton 3 arrays r vector matrix
当我发现它时,我很惊讶x <- array(0, c(5,3,1)),例如,x[2,,]返回一个vector而不是二维array(或matrix).
为什么这个数组显然被解释为5个长度为3的向量而不是5个3×1的数组?如预期的那样attr(array(0, c(5,3,1)), "dim")收益率[1] 5 3 1,所以似乎最后一个维度并没有丢失.
我如何确保获得二维数组?我知道数组只不过是带有附加属性的向量,但我不明白这种明显的"不一致"行为.
请赐教:)我在另一个函数的上下文中使用三维数组,以便存储几个矩阵.通常,这些矩阵具有n×m的形状,其中特别是m可以是1(尽管通常更高).
这是一个经典的,并且已经在R FAQ中使用了十多年:用于drop=FALSE防止1行/ col矩阵折叠到矢量.
R> M <- matrix(1:4,2,2)
R> M
[,1] [,2]
[1,] 1 3
[2,] 2 4
R> M[,1]
[1] 1 2
R> M[,1,drop=FALSE]
[,1]
[1,] 1
[2,] 2
R>
Run Code Online (Sandbox Code Playgroud)