我觉得很难理解维数对数组的概念

时间:2018-06-16 19:38:21

标签: r

enter image description here

大家好, 我运行了如下代码:

array(1:12,dim=c(1,3,1,1,2,1,2))

结果是截图,但我觉得很难理解 什么“dim = c(1,3,1,1,2,1,2)”在这里做,以及它与打印输出的相关性。 是否有人可以向我提供一些指导? 谢谢!!!

1 个答案:

答案 0 :(得分:2)

array(1:12,dim=c(1,3,1,1,2,1,2))创建一个7维数组(该维度向量中有七个元素)。每个维度的长度是您看到的数字 第一个维度的长度为1,第二个维度的长度为3,依此类推。

从更简单的事情开始可能更容易。

首先是一个矩阵(它是一个二维数组)

matrix(1:12, nrow=3, ncol=4)

# or
array(1:12, dim=c(3, 4))

#      [,1] [,2] [,3] [,4]
# [1,]    1    4    7   10
# [2,]    2    5    8   11
# [3,]    3    6    9   12

应该很容易看出'长度'这里每个维度 当阵列不能表示为扁平矩形时,它会变得更加困难,但是一个小的三维阵列仍然应该足够简单。

array(1:24, dim=c(4, 3, 2)

# , , 1

     # [,1] [,2] [,3]
# [1,]    1    5    9
# [2,]    2    6   10
# [3,]    3    7   11
# [4,]    4    8   12

# , , 2

     # [,1] [,2] [,3]
# [1,]   13   17   21
# [2,]   14   18   22
# [3,]   15   19   23
# [4,]   16   20   24

很容易看到行(第一维)的长度为4,列(第二维)的长度为3,而第三维(没有一个普遍接受的专有名称)长度为2.

将其扩展到4,5,6 ......维度使得很难跟踪对象的外观,就像想象4,5,6 ......维度空间一样困难。但是,我们仍然可以很容易地用数字来描述事物,并对这些对象执行数学运算。

如果你的老师告诉你创造那个对象并描述它代表什么,我说他或她有点狡猾。因为,正如具有长度为1的行或列的矩阵可以公平地称为向量(1维对象),其中四个维度长度为1的7维数组可以公平地称为三维数组。尺寸长度为1'崩溃',原样。