r:值序列对

r: pair of values sequence

在 R 中,使用 seq,我可以获得日期序列

seq(as.Date('2014-02-01'), as.Date('2014-8-31'), by='1 month')
[1] "2014-02-01" "2014-03-01" "2014-04-01" "2014-05-01" "2014-06-01" "2014-07-01" "2014-08-01"

如何获得一对值?序列上的值区间

"2014-02-01" "2014-03-01"
"2014-03-01" "2014-04-01"
...

你可以试试

 s1 <- seq(as.Date('2014-02-01'), as.Date('2014-8-31'), by='1 month')
 d1 <- data.frame(v1=s1[-length(s1)], v2=s1[-1])
 d1
 #        v1         v2
 #1 2014-02-01 2014-03-01
 #2 2014-03-01 2014-04-01
 #3 2014-04-01 2014-05-01
 #4 2014-05-01 2014-06-01
 #5 2014-06-01 2014-07-01
 #6 2014-07-01 2014-08-01

如果你想要一个列表,你可以这样做:

s1 = seq(as.Date('2014-02-01'), as.Date('2014-8-31'), by='1 month')

Map(c, head(s1, -1), tail(s1, -1))
#[[1]]
#[1] "2014-02-01" "2014-03-01"

#[[2]]
#[1] "2014-03-01" "2014-04-01"

#[[3]]
#[1] "2014-04-01" "2014-05-01"

#[[4]]
#[1] "2014-05-01" "2014-06-01"

#[[5]]
#[1] "2014-06-01" "2014-07-01"

#[[6]]
#[1] "2014-07-01" "2014-08-01"