我试图以编程方式从数据框中最完整的一周中筛选出过去52周中的数据框。最近的日期是'04 -21-2019'。该数据将每周加载一次,我试图避免手动过滤数据。
我知道有润滑剂。但是我不知道最近52周(以周为单位)哪个函数可以过滤我的数据。更好的解决方案会改为在365天进行过滤吗?
该表如下所示:
|---------------------|------------------|
| Date (week) | Product |
|---------------------|------------------|
| Apr 21, 19 | A |
|---------------------|------------------|
| Apr 21, 19 | B |
|---------------------|------------------|
| Apr 21, 19 | C |
|---------------------|------------------|
| Apr 14, 19 | A |
|---------------------|------------------|
| Apr 14, 19 | B |
|---------------------|------------------|
| Apr 14, 19 | C |
|---------------------|------------------|
以此类推
理想的结果是可以为我提供最近52周可用数据的表格。
答案 0 :(得分:2)
如您所说,您可以使用{lubridate}。
如果我能很好地理解您的问题,那么应该是您在寻找什么:
library(dplyr)
library(lubridate)
text_date <- '04-21-2019'
last_date <- mdy(text_date)
first_date <- last_date - weeks(52)
data <- tibble(
date = c("04-21-2019", "01-21-2019", "08-21-2018", "04-21-2018"),
product = LETTERS[1:4]
)
data %>%
mutate(date = mdy(date)) %>%
filter(date >= first_date, date <= last_date)
请问您关于SO的下一个问题,能否提供一个可复制的示例以及一个可用的数据框。