首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中的分裂矩阵

R中的分裂矩阵
EN

Stack Overflow用户
提问于 2018-12-18 11:00:26
回答 1查看 58关注 0票数 2

我试图沿着行拆分矩阵,但不确定如何实现。例如,如果我有一个NxM矩阵,但是想把这个矩阵分解成n (N/n)xM矩阵,我该如何做呢?

所以如果我有一个矩阵X:

代码语言:javascript
运行
复制
      [,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)的输出为

代码语言:javascript
运行
复制
[[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

谢谢您提前提供帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-18 11:02:17

我们创建要拆分的分组列。

代码语言:javascript
运行
复制
n <- 10
grp <- (seq_len(nrow(X)) - 1) %/% n + 1
split(as.data.frame(X), grp)

或使用索引对行进行子集。

代码语言:javascript
运行
复制
lapply(seq(1, nrow(X), by =  n), function(i) X[i:(i+n -1), ])

数据

代码语言:javascript
运行
复制
X <- matrix(1:40, ncol = 2)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53831543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档