我试图沿着行拆分矩阵,但不确定如何实现。例如,如果我有一个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
谢谢您提前提供帮助!
发布于 2018-12-18 11:02:17
我们创建要拆分的分组列。
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)
https://stackoverflow.com/questions/53831543
复制相似问题