Я нашел несколько похожих вопросов, но не основанных на программировании R или не основанных на транспонировании на основе количества столбцов. Вот почему я пишу новый вопрос.
Итак, у меня есть данные в виде массива, как в этом воспроизводимом примере:
array <- structure(c(78, 101, 22, 22, 34, 64,
68, 817, 44, 48, 42, 42, 44, 44,
69, 78, 49, 62, 76, 92, 24, 24, 27, 36,
61, 64, 44, 48, 43, 44, 42, 42, 66, 82,
43, 56), .Dim = c(2L, 9L, 2L), .Dimnames = list(c("x",
"y"), NULL, NULL))
Таким образом, у меня есть такой массив:
, , 1
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
x 78 22 34 68 44 42 44 69 49
y 101 22 64 817 48 42 44 78 62
, , 2
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
x 76 24 27 61 44 43 42 66 43
y 92 24 36 64 48 44 42 82 56
Каждый столбец представляет отдельный образец (9 образцов). Они были повторены 100 раз, здесь я представляю всего 2 повтора. Кроме того, у меня больше строк (x, y, z, w ...).
Я хотел перенести каждый 9-й столбец в новую строку, поэтому в конце у меня будет 9 столбцов со 100 строками для x, за которыми следуют 100 строк для y, 100 строк для z et c. Примерно так:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
x 78 22 34 68 44 42 44 69 49
x 76 24 27 61 44 43 42 66 43
y 101 22 64 817 48 42 44 78 62
y 92 24 36 64 48 44 42 82 56
Это может быть data.frame, matrix et c. Это не имеет особого значения, я просто планирую потом экспортировать в формат csv.