在R语言中实现固定次数重复数值后递增的序列生成方案
在R语言中实现固定次数重复数值后递增的序列生成方案
嘿,我来帮你搞定这个序列生成的问题!你想要的是每个数值重复4次后自动递增1,这样循环10次对吧?其实用R的基础函数就能轻松实现,完全不用复杂操作~
最简单的方案就是用rep()函数的each参数,一行代码就能搞定:
# 定义核心参数:起始值、每个值的重复次数、总递增轮数 start_num <- 2000 repeat_count <- 4 total_rounds <- 10 # 生成目标序列 target_sequence <- rep(start_num:(start_num + total_rounds - 1), each = repeat_count)
我给你拆解下这段代码的逻辑:
start_num:(start_num + total_rounds - 1)先生成了2000到2009这10个基础数值(因为要循环10次,所以刚好10个不同的数)each = repeat_count参数指定每个基础数值重复4次,完美贴合你“4次重复后递增”的需求
运行这段代码后,你会看到前8个元素就是2000, 2000, 2000, 2000, 2001, 2001, 2001, 2001,完全匹配你的示例要求。
另外还有个等价的简洁写法,用rep.int()函数也能达到同样效果:
target_sequence <- rep.int(2000:2009, times = 4)
你之前用seq()没搞定很正常,因为seq()的核心是生成等差序列,没法直接处理“重复元素”的需求,但把它和rep()结合起来,就刚好能实现你要的“重复+递增”组合逻辑啦。
备注:内容来源于stack exchange,提问作者Beans On Toast
相关产品推荐
相关产品推荐

