我有一个大矩阵,为了简化起见:
> mat = matrix(c(1:50), ncol = 5)
> mat
[,1] [,2] [,3] [,4] [,5]
[1,] 1 11 21 31 41
[2,] 2 12 22 32 42
[3,] 3 13 23 33 43
[4,] 4 14 24 34 44
[5,] 5 15 25 35 45
[6,] 6 16 26 36 46
[7,] 7 17 27 37 47
[8,] 8 18 28 38 48
[9,] 9 19 29 39 49
[10,] 10 20 30 40 50
我想从每列中连续提取由 3 个元素组成的所有可能的垂直向量,例如(1,2,3), (2,3,4),...,(11,12,13), (12,13,14),... 并生成由以下组成的 3×X 矩阵所有这些向量。
看起来像这样的东西:
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 2 3 4
[3,] 3 4 5
etc. . . .
[5,] 11 12 13
[6,] 12 13 14
[7,] 13 14 15
etc. .. .. ..
[9,] 21 22 23
[10,] 22 23 24
我尝试过使用 lapply 和 cbind 函数,以及更通用的 for 循环,但它显示“维数不正确”。感谢您的帮助!