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

R语言:如何按每n个元素为一组重复序列x次?

R语言向量按固定长度分组重复的实现

原始向量与需求

定义原始向量:

v <- c(1, 2, 3, 4)

需求:将向量中每n个元素组成的子序列重复x次。例如当x=2、n=2时,期望得到:

[1] 1 2 1 2 3 4 3 4

已尝试的无效方法

  • 整体重复整个向量,不符合分组重复的要求:
rep(v, times=x)
# 输出:[1] 1 2 3 4 1 2 3 4
  • 单个元素重复,不是按组重复子序列:
rep(v, each=x)
# 输出:[1] 1 1 2 2 3 3 4 4

解决方案

方法1:分组后重复再合并

先将向量分割为长度为n的分组,对每个分组重复x次后合并:

x <- 2
n <- 2

# 分割为指定长度的分组
groups <- split(v, ceiling(seq_along(v)/n))
# 对每个分组重复x次并展开
result <- unlist(lapply(groups, function(g) rep(g, times=x)))

result
# 输出:[1] 1 2 1 2 3 4 3 4

方法2:利用rep的times参数指定分组重复次数

直接构造对应分组的重复次数向量,传递给rep的times参数,更简洁:

x <- 2
n <- 2

# 生成每个分组的重复次数:共 length(v)/n 个分组,每个重复x次
repeat_times <- rep(x, length.out = length(v)/n)
result <- rep(v, times = repeat_times)

result
# 输出:[1] 1 2 1 2 3 4 3 4

内容的提问来源于stack exchange,提问作者Lluís Serra Domínguez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 00:06:18