嗨,我有一个数据框,例如:
Order Number Date
4378345 2020-01-02
4324375 2020-02-03
Run Code Online (Sandbox Code Playgroud)
现在,我只想将此 Dataframe 子集化为日期大于今天日期过去 2 个月的订单,这样当我将其自动化时,它会自动使用过去两个月至今的代码。
任何帮助,将不胜感激。
编辑:我很抱歉,我想我应该更清楚,因为到最后两个月我的意思是,如果日期是今天 2020-03-16,我希望我的数据是从 2020-02-01 至今
library(lubridate)
subset(your_data, Date > today() - months(2))
Run Code Online (Sandbox Code Playgroud)
这假设您的日期列已经属于类别Date。
一般来说,月份并不是非常明确的......您可能想要使用更具确定性的标准。例如,4月28日、4月29日、4月30日、5月1日之前2个月是多少?请记住,今年 2 月有 29 天。您可以lubridate通过查看 的意见(as.Date("2020-04-28") + 0:3) - months(2),这是NA2020-04-30 的情况。在 ( ) 或其他一些更明确的标准之前进行 60 天Date > today() - days(60)将使您更加一致。
要从上个月的第一天开始,请使用以下代码。这是明确定义的,因为所有月份都有第一天。
subset(your_data, Date >= floor_date(today(), unit = "month") - months(1))
Run Code Online (Sandbox Code Playgroud)