我正在尝试沿行拆分矩阵,但不确定如何执行。例如,如果我有一个NxM矩阵,但想对矩阵进行拆分,以得到n(N / n)xM个矩阵,那我该怎么办?
所以,如果我有一个矩阵X:
[,1] [,2]
[1,] 1 21
[2,] 2 22
[3,] 3 23
[4,] 4 24
[5,] 5 25
[6,] 6 26
[7,] 7 27
[8,] 8 28
[9,] 9 29
[10,] 10 30
[11,] 11 31
[12,] 12 32
[13,] 13 33
[14,] 14 34
[15,] 15 35
[16,] 16 36
[17,] 17 37
[18,] 18 38
[19,] 19 39
[20,] 20 40`
如果n = 2,则功能块(X,n)的输出为
[[1]]
[,1] [,2]
[1,] 1 21
[2,] 2 22
[3,] 3 23
[4,] 4 24
[5,] 5 25
[6,] 6 26
[7,] 7 27
[8,] 8 28
[9,] 9 29
[10,] 10 30
[[2]]
[,1] [,2]
[1,] 11 31
[2,] 12 32
[3,] 13 33
[4,] 14 34
[5,] 15 35
[6,] 16 36
[7,] 17 37
[8,] 18 38
[9,] 19 39
[10,] 20 40
感谢您的任何帮助!
答案 0 :(得分:2)
我们创建要分组的分组列
n <- 10
grp <- (seq_len(nrow(X)) - 1) %/% n + 1
split(as.data.frame(X), grp)
或使用索引对行进行子集
lapply(seq(1, nrow(X), by = n), function(i) X[i:(i+n -1), ])
X <- matrix(1:40, ncol = 2)