我有一个关于除法矩阵的问题。
我有100行1024列的数据。我想将该矩阵拆分为 2 个子矩阵,以便 8 行到矩阵 1,2 行到矩阵 2
将形成第一个矩阵
r1
r2
r3
r4
r5
r6
r7
r8
r11
r12
r13
...
...
第二个矩阵将由以下内容组成
r9
r10
r19
r20
...
...
最佳答案
一种选择是使用 rep
创建逻辑索引,然后使用它来分割
矩阵
的行序列,将子集化基于
列表
中索引向量的code>矩阵
out <-lapply(split(seq_len(nrow(m1)), rep(rep(c(TRUE, FALSE), c(8, 2)),
length.out = nrow(m1))), function(i) m1[i, ] )
此外,正如 @user20650 在评论中提到的,?split.data.frame
也可以用于矩阵(基于文档)
The data frame method can also be used to split a matrix into a list of matrices, and the replacement form likewise, provided they are invoked explicitly.
out1 <- split.data.frame(m1, rep(rep(c(TRUE, FALSE), c(8, 2)),
length.out = nrow(m1)))
数据
set.seed(24)
m1 <- matrix(rnorm(100 * 1024), nrow = 100, ncol = 1024)
关于r - 基于行分割矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55561285/