大家好, 我运行了如下代码:
array(1:12,dim=c(1,3,1,1,2,1,2))
结果是截图,但我觉得很难理解 什么“dim = c(1,3,1,1,2,1,2)”在这里做,以及它与打印输出的相关性。 是否有人可以向我提供一些指导? 谢谢!!!
答案 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'崩溃',原样。