Я пытаюсь преобразовать трехмерный массив в матрицу. Я хочу, чтобы третье измерение массива сформировало первую строку в матрице, и это третье измерение должно быть прочитано по строке (т. Е. Строка 1, затем строка 2 и т. Д. ... измерения 3 должны составлять первую строку матрица). Ниже приведен пример, где массив имеет размеры 4, 3 и 5, а полученная матрица имеет 5 строк и 12 столбцов. У меня есть решение ниже, которое достигает того, что я хочу, но оно кажется очень громоздким для больших массивов (сначала он создает векторы из элементов массива (по строкам), а затем связывает их для формирования матрицы). Есть ли более элегантный способ сделать это? Заранее спасибо за любые предложения.
dat <- array( rnorm(60), dim=c(4, 3, 5) )
results <- list(1:5)
for (i in 1:5) {
vec <- c( t(dat[, , i]) )
results[[i]] <- vec
}
datNew <- rbind( results[[1]], results[[2]], results[[3]], results[[4]], results[[5]] )