简体   繁体   English

有没有一种简单的方法可以按照以下模式创建向量:每月的第一天、每月的最后一天、每月的第一天等?

[英]Is there an easy way to create a vector following the pattern: 1st day of the month, last day of the month, 1st day of the month etc.?

I'm trying to find an elegant way to create a vector of dates that follows a pattern like:我试图找到一种优雅的方法来创建遵循以下模式的日期向量:

x <- c(ymd("2000/01/01"), ymd("2000/01/31"), ymd("2000/02/01"), ymd("2000/02/28"))

...and so on. ...等等。

So far I've just been doing this:到目前为止,我一直在这样做:

library(lubridate)

start <- ymd("2000/01/01")


x <- c(start, rollback(start + month(1)), 
       start + months(1), rollback(start + months(2)),
       start + months(2), rollback(start + months(3)),
       start + months(3), rollback(start + months(4)),
       start + months(4), rollback(start + months(5)),
       start + months(5), rollback(start + months(6)),
       start + months(6), rollback(start + months(7)),
       start + months(7), rollback(start + months(8)),
       start + months(8), rollback(start + months(9)),
       start + months(9), rollback(start + months(10)),
       start + months(10), rollback(start + months(11)),
       start + months(11), rollback(start + months(12)))

Any help is much appreciated, thank you!非常感谢任何帮助,谢谢!

You could generate first days and the subtract 1:您可以生成第一天并减去 1:

first_days <- start + months(0:12) 
sort(c(head(first_days, -1), tail(first_days - 1, -1)))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM