[英]How to get a vector of all dates in the current month
目标很简单,我想要一个由本月所有日期组成的向量。
为什么?
因为稍后我将能够转换这个向量并获得该月的第一天,或者,一个仅包含该月 1 日和 16 日的向量,或者甚至是包含该月所有星期一的向量...列表继续,但 POSIXlt 应该更好地为我们服务,因为它也存储工作日。
require("lubridate")
v.d.CheckDates <- as.POSIXlt(seq(as.POSIXlt(Sys.Date() - days(31)), length.out=62, by="day"))
v.d.CheckDates[v.d.CheckDates$mon == as.numeric(format(Sys.Date() , format = "%m")) - 1]
它基本上是创建一个以今天(第一行)为中心的 62 天向量,然后修剪其他月份(第二行)
那么,有没有人有更切割更有效(最好也是一个衬里)的方法吗?
您可以使用floor_date
获得当月的第一个日期ceiling_date
拿到下个月减的第一个日期- 1
获得当月的最后一天,并创建序列。
library(lubridate)
todays_date <- Sys.Date()
seq(floor_date(todays_date, 'month'),
ceiling_date(todays_date, 'month') - 1, by = 1)
还有其他类似的变化,
floor_date(todays_date, 'month') + 1:days_in_month(todays_date) - 1
seq(floor_date(todays_date, 'month'),
length.out = days_in_month(todays_date), by = 1)
这将返回类'Date'
对象,在基 R 中有函数以及lubridate
来获取您想要的 Date 的任何部分。
包timeperiodsR有一个方便的功能:
timeperiodsR::this_month(part = "sequence")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.