如何每年最近的周二到4月1日?

时间:2017-05-22 04:57:02

标签: r date

我有一个与Date有关的问题。我需要确定日期,即从1961年到2006年每年最接近4月1日的星期二。

我可以从日历查看,我看到以下内容:

1961    1961-04-04
1962    1962-04-03
1963    1963-04-02
1964    1964-03-31

但是,我可以在R?

中轻松地从日历中发现它们

这个问题有空气污染网络管理的背景。具体而言,1961年至2005年间在英国运营的历史烟雾和二氧化硫网络是在污染年度和#34;从这个问题中提到的日期开始,这些年份的星星。

1 个答案:

答案 0 :(得分:5)

这是一个解决方案

nearestTuesday <- function(date) {
  delta <- as.POSIXlt(date)$wday - 2
  if(abs(delta) < 4) 
    next_date <- as.Date(date) - delta
  else 
    next_date <- as.Date(date) + (7 - delta)
  return(next_date)
}

lapply(ISOdate(1961:2006, 4,1), nearestTuesday)