我希望获得更好的R数据结构维度,尤其是张量和列表列表。
我想我现在有一个张量或四个列表传递给我的函数,即四个矩阵,导致错误,我没有注意到,因为str(Matrix)
只说List of 4
,更好的是尺寸等{ {1}}。
同样4x1505x1505
返回print(dim(Matrix))
,因为它是为矩阵/数组/数据帧而设计的。
我在函数
NULL
输出
print("Just before the matrix")
print(dim(Matrix))
str(Matrix)
print("Just before turning the matrix")
Matrix <- apply(Matrix, 2, rev) # http://stackoverflow.com/a/9135850/54964
提案:获取数据结构的维度而不是描述性词语
R:3.3.1
操作系统:Debian 8.5
答案 0 :(得分:1)
尺寸不是4 x 1505 x 1505.&#34; Matrix&#34;对象实际上没有dim
属性,因此dim
报告了NULL。它的length
为4.如果要构建具有这些维度的数组,则需要安装abind
库并加载它:
M <- list( matrix(0, 3,3), matrix(1,3,3), matrix(2, 3,3) )
library(abind)
( M333 <- abind(M, along=3) )
#----------
, , 1
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 0 0 0
[3,] 0 0 0
, , 2
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
[3,] 1 1 1
, , 3
[,1] [,2] [,3]
[1,] 2 2 2
[2,] 2 2 2
[3,] 2 2 2
如果您在该对象上起诉rev
,则需要指定您感兴趣的边缘。阅读apply
的帮助页面并使用较小的示例进行一些操作。