如何列出R中两个日期之间的所有月份

Yu *_*ang 1 r date

我正在尝试创建一个函数,将两个月之间的所有月份放入列表中:

date1<- 201305
date2<- 201511

months <- function(date1,date2){}
Run Code Online (Sandbox Code Playgroud)

我希望它返回一个这样的列表:

201305
201306
201307
...
201509
201510
201511
Run Code Online (Sandbox Code Playgroud)

Dir*_*tel 10

首先,我们需要创建日期.你提供的东西还不是一个错过一天的日期 - 所以我们加一个:

R> d1 <- as.Date(paste0("201305","01"), "%Y%m%d")
R> d2 <- as.Date(paste0("201511","01"), "%Y%m%d")
Run Code Online (Sandbox Code Playgroud)

鉴于两个日期,获得一系列日期是微不足道的:打电话给seq().以您想要的方式格式化同样简单:

R> dat <- format(seq(d1,d2,by="month"), "%Y%m")
Run Code Online (Sandbox Code Playgroud)

我们检查开始和结束:

R> head(dat)
[1] "201305" "201306" "201307" "201308" "201309" "201310"
R> tail(dat)
[1] "201506" "201507" "201508" "201509" "201510" "201511"
R> 
Run Code Online (Sandbox Code Playgroud)

现在,作为一个功能:

datseq <- function(t1, t2) { 
   format(seq(as.Date(paste0(t1,"01"), "%Y%m%d"), 
              as.Date(paste0(t2,"01"), "%Y%m%d"),by="month"), 
          "%Y%m") 
}
Run Code Online (Sandbox Code Playgroud)