如何从 R 中的 yearweek/weeknumber 中减去周数?

How to subtract a number of weeks from a yearweek/weeknumber in R?

我有几个感兴趣的周数。让我们以“202124”(本周)为例。如何从本周数中减去 x 周? 假设我想知道 2 周前的周数,理想情况下我想做 202124 - 2,这会给我 202122。这在一年中的大部分时间都很好,但是 202101 - 2 会给出 202099,这显然不是有效的周数。这会大规模发生,因此需要更优雅的解决方案。我该怎么做?

将年周值转换为以天为单位减去的日期并格式化输出。

x <- c('202124', '202101')
format(as.Date(paste0(x, 1), '%Y%W%u') - 14, '%Y%V')
#[1] "202122" "202052"

要将年周值转换为日期,我们还需要星期几,我将其用作一周的第一天。