如何调试更好的R张量尺寸?

时间:2016-11-04 22:46:20

标签: r debugging data-structures

我希望获得更好的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

1 个答案:

答案 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的帮助页面并使用较小的示例进行一些操作。