matrix
будет стандартным способом для этого, но вы также можете использовать replicate
(просто для удовольствия).
t(replicate(1356, 4:22))
Или, вы можете получить действительно загадочны с:
t(`dim<-`(rep(c(4:22), 1356), c(19, 1356)))
Убедитесь, что все подходы дают те же результаты:
x <- function() matrix(4:22, 1356, 19, TRUE)
y <- function() t(replicate(1356, 4:22))
z <- function() t(`dim<-`(rep(c(4:22), 1356), c(19, 1356)))
identical(x(), y())
# [1] TRUE
identical(x(), z())
# [1] TRUE
... и удивить себя (или не) с разницей в микросекундах ...
library(microbenchmark)
microbenchmark(x(), y(), z())
# Unit: microseconds
# expr min lq mean median uq max neval
# x() 293.631 295.639 309.5798 298.3165 327.5460 393.144 100
# y() 2026.409 2076.166 2337.4346 2121.4595 2332.0885 8593.830 100
# z() 94.159 98.620 188.2139 103.3070 115.8015 3881.459 100
Попробуйте 'all1 <- matrix (c (4:22), ncol = 19, nrow = 1356, byrow = TRUE)' – DatamineR