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

如何在R语言中重复数字序列直至达到指定行数

实现每44行重复序列编号的方法

嘿,我来帮你搞定这个每44行重复序列编号的需求!先结合你之前的例子来拆解实现方法:

首先回顾你之前用dplyr实现每11行一组编号的基础代码:

library(dplyr)
# 你的原始数据框
test_table <- data.frame(col=rep(0:10,each=11), row=c(rev(0:10)))
# 原逻辑:每11行分配同一个递增编号(0、1、2...)
test_table <- test_table %>% mutate(No=(row_number() - 1) %/% 11)

现在要扩展成每44行重复一次目标序列,核心思路是先把数据按44行划分为独立周期,再在每个周期内重复你需要的子序列,这里分两种常见场景:

场景1:每个44行周期内重复「0-3」分组(每11行一组)

如果你希望每个44行周期里,前11行No=0、接下来11行No=1、再11行No=2、最后11行No=3,下一个44行又重复这个0-3的序列,用这段代码:

test_table <- test_table %>% 
  mutate(
    # 计算当前行在44行周期内的位置(从0开始计数)
    cycle_pos = (row_number() - 1) %% 44,
    # 周期内每11行一组分配编号,实现44行重复0-3
    No = cycle_pos %/% 11
  )

场景2:每个44行周期内重复「0-10」序列(每个编号重复4次)

如果你的需求是每个编号(0到10)在44行周期内重复4次(4×11=44),也就是0连续出现4次、1连续出现4次……10连续出现4次,再进入下一个周期重复,代码可以这么写:

test_table <- test_table %>% 
  mutate(
    cycle_pos = (row_number() - 1) %% 44,
    # 每个编号重复4次,用周期内位置除以4取整生成序列
    No = cycle_pos %/% 4
  )

通用调整思路

本质上就是用row_number()获取全局行号,通过%% 44锁定当前行在周期内的位置,再用%/% 每组行数生成重复序列。你可以根据自己的子序列长度灵活调整%/%后面的数字,只要保证「每组行数 × 子序列长度 = 44」即可~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:27:16