Вы можете сделать это, изменив длину исходных векторов в списке. Вызовите список a
a <- list(
c(13, 5, 9, 16, 1, 7, 3, 20),
c(0, 1, 2, 7, 8, 14, 20),
c(2, 4, 7, 9, 12, 14, 16),
0:9,
c(18, 19, 20, 21, 22, 23, 6, 7, 8, 9),
c(0, 1, 7, 13, 19, 6, 12, 18, 2, 8),
23:22,
c(18, 13, 8),
c(18, 13, 8, 3, 10, 17, 12, 6, 0, 1),
c(18, 14),
c(18, 19, 20, 21, 13, 7, 8, 14, 2, 1),
c(13, 15, 16, 9, 8, 7, 14, 20, 19, 18)
)
Затем вычислите максимальную длину
n <- max(sapply(a, length))
И измените длины каждого элемента в списке
b <- lapply(a, function(el) {length(el) <- n ; el})
res <- do.call("rbind", b)
Наконец, поменяй имена
dimnames(res) <- list(sprintf("D%02i", 1:nrow(res)),
sprintf("P%02i", 1:ncol(res)))
res
# P01 P02 P03 P04 P05 P06 P07 P08 P09 P10
# D01 13 5 9 16 1 7 3 20 NA NA
# D02 0 1 2 7 8 14 20 NA NA NA
# D03 2 4 7 9 12 14 16 NA NA NA
# D04 0 1 2 3 4 5 6 7 8 9
# D05 18 19 20 21 22 23 6 7 8 9
# D06 0 1 7 13 19 6 12 18 2 8
# D07 23 22 NA NA NA NA NA NA NA NA
# D08 18 13 8 NA NA NA NA NA NA NA
# D09 18 13 8 3 10 17 12 6 0 1
# D10 18 14 NA NA NA NA NA NA NA NA
# D11 18 19 20 21 13 7 8 14 2 1
# D12 13 15 16 9 8 7 14 20 19 18