使用 Base R 我们需要...
首先让我们创建一个包含 4 个向量的示例数据集:
a <- rnorm(10)
b <- rnorm(5)
c <- rnorm(7)
d <- rnorm(20)
然后我们可以将它们放在一个列表中:
f <- list(a,b,c,d)
那么我们需要找到最长向量的length:
max_len <- max(sapply(f, length))
然后我们需要通过将NAs 替换为间隙来使所有向量成为max_len(因此,如果您有一个max_len = 20 并且当前向量只有length(current) = 10,那么您需要最后10 个值来是NA
f1 <- lapply(f, function(x) c(x, rep(NA, max_len - length(x))))
然后你可以把它变成一个矩阵:
matrix(unlist(f1), ncol = length(f1), byrow = F)
导致
[,1] [,2] [,3] [,4]
[1,] -0.53487289 -1.8570456 0.8304454 -0.6440267
[2,] 0.04283173 -1.2541836 0.9579962 -1.1664334
[3,] -1.31686110 -0.6789986 0.9424487 0.4073388
[4,] -0.54987484 -0.4326257 -1.5165032 0.1990406
[5,] 0.31529161 -0.2712977 0.1347272 -0.2479010
[6,] -1.08465865 NA 0.7442857 -1.1319033
[7,] 1.11283161 NA -0.8397640 0.2636702
[8,] 0.08882676 NA NA -0.1332037
[9,] 0.76028752 NA NA 0.1607880
[10,] -2.68513818 NA NA -2.3300150
[11,] NA NA NA -0.3356175
[12,] NA NA NA 0.8115210
[13,] NA NA NA 1.1668857
[14,] NA NA NA 0.5538027
[15,] NA NA NA -0.8910439
[16,] NA NA NA -1.4056796
[17,] NA NA NA -1.6713585
[18,] NA NA NA 0.2557690
[19,] NA NA NA -0.5970861
[20,] NA NA NA 0.1851019