Arrays 向量、矩阵和数组数据类型之间有什么区别?

Arrays 向量、矩阵和数组数据类型之间有什么区别?,arrays,r,types,Arrays,R,Types,R提供了三种类型来存储同质对象列表:向量、矩阵和数组 据我所知: vector是一维数组的特例 矩阵是二维数组的特例 数组也可以具有任何维度级别(包括1和2) 在向量上使用一维数组和在矩阵上使用二维数组有什么区别?我们需要在这两者之间转换,还是自动转换?矩阵和二维数组之间没有区别: > x <- matrix(1:10, 2) > y <- array(1:10, c(2, 5)) > identical(x, y) [1] TRUE ... 引用: 矩阵和数

R提供了三种类型来存储同质对象列表:
向量
矩阵
数组

据我所知:

  • vector
    是一维数组的特例
  • 矩阵
    是二维数组的特例
  • 数组
    也可以具有任何维度级别(包括1和2)

在向量上使用一维数组和在矩阵上使用二维数组有什么区别?我们需要在这两者之间转换,还是自动转换?

矩阵和二维数组之间没有区别:

> x <- matrix(1:10, 2)
> y <- array(1:10, c(2, 5))
> identical(x, y)
[1] TRUE
...
引用:

矩阵和数组只是具有属性
dim
和 可选地将
dimnames
附加到向量

[……]

dim
属性用于实现数组。报告的内容 数组以列主顺序和
dim
属性是一个整数向量,指定 阵列。R确保向量的长度是 尺寸的长度。一个或多个维度的长度 可能是零

向量与一维数组不同,因为后者 具有长度为1的dim属性,而前者没有dim属性 属性


“…内部数组只是向量…”-类函数对向量和一维数组给出不同的结果这一事实如何?你的问题是什么?R@Roland中有隐式类。也许你应该编辑你的答案,将这些“有隐式类”的细节包括在内。详细说明如何使用函数(如
class()
mode()
typeof()
)来最终确定向量、数组和矩阵之间的差异可能会很有用。
...
> attributes(x)
$dim
[1] 2 5

> dim(x) <- NULL
> x
 [1]  1  2  3  4  5  6  7  8  9 10
> z <- 1:10
> dim(z) <- c(2, 5)
> is.matrix(z)
[1] TRUE