如何在R中生成指定时段内显示每周周一和周日的周区间序列
R语言生成指定时段周区间序列解决方案
核心实现代码
# 定义起止日期 startdate <- as.Date("2018-09-03") enddate <- as.Date("2021-03-22") # 生成区间内所有周一的序列 monday_seqs <- seq.Date(from = startdate, to = enddate, by = "week") # 匹配对应周的周日:周一加6天即为当周周日 sunday_seqs <- monday_seqs + 6 # 拼接为要求格式的字符串向量 dates_ranges <- paste(monday_seqs, sunday_seqs)
结果验证
执行代码后得到的dates_ranges完全符合需求格式:
- 首项为
"2018-09-03 2018-09-09" - 末项为
"2021-03-22 2021-03-28"
原代码问题说明
之前的方法出现数值类型输出,是因为手动调用as.numeric()将Date类型转为了1970-01-01以来的天数数值,完全不需要做这一步转换。且Map(c())返回的是列表类型,不符合需要的字符向量要求,直接用paste()拼接两个日期序列更简单高效。
内容的提问来源于stack exchange,提问作者FRANCESCO S.
相关产品推荐
相关产品推荐

