You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于size_1向量将output向量拆分为指定长度的列表?

基于指定长度拆分向量为列表(R语言)

问题背景

现有如下R代码及输出:

size_1=c(3,4,4,3,2,2)
output=c(2, 3, 5, 24, 32, 36, 39, 41, 44, 50, 54, 61, 74, 80, 88, 93, 
102, 103)

需要按照size_1中每个元素指定的长度,将output拆分为对应结构的列表,目标结果为:

list(c(2, 3, 5),c(24, 32, 36, 39),c(41, 44, 50, 54),c(61, 74, 80),c(88, 93),c(102, 103))

解决方案

通过生成分组索引结合split()函数即可实现需求:

# 生成与output长度匹配的分组索引
groups <- rep(seq_along(size_1), size_1)
# 拆分向量为列表
result <- split(output, groups)
# 移除列表命名(与目标结构完全一致)
names(result) <- NULL

原理说明

  • rep(seq_along(size_1), size_1)会生成一个索引向量:前3个元素为1,接下来4个为2,以此类推,总长度与output完全一致。
  • split(output, groups)根据索引将output拆分为对应长度的子向量,自动组合成列表。
  • 移除命名是为了和目标结构完全匹配,若保留命名不影响使用,可省略最后一步。

内容的提问来源于stack exchange,提问作者Tou Mou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 16:50:25