我正在使用R,并希望构建一个日期向量,由每个月的1日和15日组成,用作图中沿x轴的分隔符。
有很多方法可以做到这一点,但我正在努力寻找最优雅、最直接的方法。
我自己的解决方案是创建一个完整的日期向量,然后通过检查日期来丢弃我不需要的日期。
library(lubridate)
library(magrittr)
myDateBreaks = function(start, end, days=c(1, 15){
dateBreaks = seq(as.Date(start), as.Date(end), by="1 day")
dateBreaks %<>% .[day(dateBreaks) %in% days]
return(dateBreaks)
}
x <- seq(as.Date("2015-01-01"), as.Date("2015-12-31"), by = "month")
rep(x, each = 2) + rep(c(0, 14), length(x))
#[1] "2015-01-01" "2015-01-15" "2015-02-01" "2015-02-15" "2015-03-01" "2015-03-15" "2015-04-01" "2015-04-15" "2015-05-01" "2015-05-15" "2015-06-01" "2015-06-15"
#[13] "2015-07-01" "2015-07-15" "2015-08-01" "2015-08-15" "2015-09-01" "2015-09-15" "2015-10-01" "2015-10-15" "2015-11-01" "2015-11-15" "2015-12-01" "2015-12-15"