Или, проще (если вы имеете в виду вектор, а не массив)
rep(rep(1:4,each=3),3)
Ответ 3
Вот так:
rep(sapply(1:4, function(x) {rep(x, 3)}), 3)
rep (x, N) возвращает вектор, повторяющий x N раз. sapply применяет данную функцию к каждому элементу вектора 1: 4 отдельно, повторяя каждый элемент 3 раза подряд.
Ответ 4
Вот метод, использующий манипуляцию массивом с помощью aperm. Идея состоит в том, чтобы построить массив, содержащий значения. Переупорядочивайте их так, чтобы они соответствовали желаемому результату с помощью aperm, а затем "разворачивали" массив с помощью c.