R语言生成连续年月字符串序列的更简洁优雅实现方案咨询
方案1:基于日期序列生成(推荐,不易出错)
直接生成按月递增的日期序列,再格式化输出,只需一行代码,无需手动处理年月的拼接逻辑:
format(seq.Date(from = as.Date("2016-01-01"), to = as.Date("2020-12-01"), by = "month"), "%Y-%m")
如果需要调整生成范围,只需要修改起止日期即可,适配性更强。
方案2:合并sprintf参数实现批量拼接
符合你提到的合并前缀的需求,利用向量循环和重复规则,一次传入年份、月份两个向量完成批量格式化:
sprintf("%d-%02d", rep(2016:2020, each = 12), 1:12)
这里rep(2016:2020, each = 12)会把每个年份重复12次,和1:12的月份一一对应,sprintf会自动按位置匹配两个向量的元素完成拼接,完全不需要重复调用sprintf再手动合并结果。
内容的提问来源于stack exchange,提问作者Fateta
相关产品推荐
相关产品推荐

