假设我在R中声明了一个3d数组:
arr <- array(rep(0, 20), c(1,2,20))
我们致电arr[,,1]
,我得到
[1] 0 0
我希望用1乘2矩阵代替上面的矢量
向drop
添加arr[,,1, drop=F]
,我就会{/ 1}}
, , 1
[,1] [,2]
[1,] 0 0
这也不理想,因为它不是矩阵。在矩阵乘法中使用时会导致错误。
我可以使用matrix()
matrix(arr[,,1, drop=F])
来包装它,然后获取
[,1]
[1,] 0
[2,] 0
然后维度是错误的。最后我做了matrix(arr[,,1, drop=F], dim(arr)[1:2])
,它给了我正确的结果。
[,1] [,2]
[1,] 0 0
当然,如果3d数组的尺寸都大于1,那么它根本不会成为问题。 我的问题是,在任何情况下,在对3d数组进行子集化时,是否有更简单的方法来获取矩阵。