R语言如何按固定6行间隔转置单列矩阵为10*6矩阵
R实现单列矩阵按每6行分组重组为10行6列矩阵
具体实现
你要的效果是把单列矩阵里按顺序存的60个数值,每6个拿出来当新矩阵的一行,不用复杂的转置操作,两种常用写法都能实现:
- 维度直接转换(效率最高)
R的matrix()函数默认按列填充数据,加byrow=TRUE参数就会按行顺序填充,刚好匹配你的分组规则,代码最短,处理大数据的时候速度最快:
# 生成示例矩阵 simple <- matrix(1:60,nrow=60,ncol=1) # 直接重组得到目标矩阵 result <- matrix(simple, nrow = 10, ncol = 6, byrow = TRUE)
跑出来的结果第一行存1-6,第二行存7-12,最后一行存55-60,完全符合要求。
- 分组拼接(逻辑直白好改)
如果需要代码逻辑更易懂,或者后续要给每个分组加额外计算,可以先给原矩阵每行标好组号,拆分后逐行拼起来:
# 每6行标同一个组号,一共10组 group_tag <- rep(1:10, each = 6) # 按组拆分元素,再按行绑定成矩阵 result <- do.call(rbind, split(simple, group_tag))
结果校验
跑完可以用下面的代码核对结果对不对:
# 查看维度,确认输出是10行6列 dim(result) # 打印全量结果核对数值顺序 print(result)
内容的提问来源于stack exchange,提问作者TUSTLGC
相关产品推荐
相关产品推荐

