Ответ 1
Нет разницы между matrix
и 2D array
:
x <- matrix(1:10, 2)
y <- array(1:10, c(2, 5))
identical(x, y)
#[1] TRUE
matrix
- это просто более удобный конструктор, и есть много функций и методов, которые принимают только матрицы 2D-матрицы a.k.a.
Внутренние массивы - это просто векторы с атрибутом измерения:
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
Чтобы указать определение :
Матрицы и массивы - это просто векторы с атрибутом dim и необязательно dimnames, прикрепленных к вектору.
[...]
Атрибут dim используется для реализации массивов. Содержание массив хранится в векторе в основном порядке столбца, а dim Атрибут - это вектор целых чисел, определяющий соответствующие экстенты массив. R гарантирует, что длина вектора является произведением длины размеров. Длина одного или нескольких размеров может быть нулевым.
Вектор не совпадает с одномерным массивом, поскольку последний имеет тусклый атрибут длины один, тогда как первый не имеет атрибут.