Я бы назвал это расщеплением , а не прокаткой , поскольку нет совпадений между выходными данными компонентов.
Что касается ответов ниже, первый дает матрицу с еестолбцы, содержащие компоненты.Если эта матрица m
, то m[, 1]
- это вектор 1:10
.Это следует использовать только в том случае, если длина a
кратна 10.
Второй ответ дает список, компоненты которого являются требуемыми векторами.Если этот список равен L
, тогда L[[1]]
- это вектор 1:10
.
. Третий ответ создает матрицу, в которой строки содержат компоненты.Если эта матрица mm
, то mm[1, ]
- это вектор 1:10
.Эту альтернативу следует использовать только в том случае, если длина a
кратна 10.
Четвертый такой же, как третий, но он также работает в том случае, если длина a
не являетсякратный 10.
# 1
matrix(a, 10)
# 2
n <- length(a)
split(a, rep(1:n, each = 10, length = n))
# 3
library(zoo)
rollapply(a, 10, by = 10, c)
# 4
library(zoo)
rollapply(1:45, 10, by = 10, `length<-`, value = 10, partial = TRUE, align = "left")