r - 根据更改的日期范围自动设置 R 数据框
问题描述
我有一个每月运行的 R 脚本。我想将我的数据框子集化为仅显示 6 个月时间段内的数据,但每个月我都希望时间段向前移动一个月。
9月的原始数据框:
ID Name Date
1 John 1/1/2020
2 Adam 5/2/2020
3 Kate 9/30/2020
4 Jill 10/15/2020
仅对 2020 年 5 月 1 日至 2020 年 9 月 30 日的日期进行子集化后:
ID Name Date
2 Adam 5/2/2020
3 Kate 9/30/2020
下个月运行我的脚本时,我希望它的子集日期提前一个月,所以 2020 年 6 月 1 日 - 2020 年 10 月 31 日:
ID Name Date
3 Kate 9/30/2020
4 Jill 10/15/2020
现在,我每个月都会手动更改这部分脚本,即:
df$Date >= subset(df$Date >= '2020-05-01' & df$date <= '2020-09-30')
有没有办法让它自动化,这样我就不必每次都手动将日期向前移动一个月?
解决方案
我们可以between
在将“日期”转换为Date
类后使用
library(dplyr)
library(lubridate)
start <- as.Date("2020-05-01")
end <- as.Date("2020-09-30")
df1 %>%
mutate(Date = mdy(Date)) %>%
filter(between(Date, start, end))
# ID Name Date
#1 2 Adam 2020-05-02
#2 3 Kate 2020-09-30
在下个月,我们可以通过添加 1 个月来更改“开始”、“结束”
start <- start %m+% months(1)
end <- ceiling_date(end %m+% months(1), 'months') - days(1)
start
#[1] "2020-06-01"
end
#[1] "2020-10-31"
推荐阅读
- r - 由于在 y 对数刻度中转换无限值导致的奇怪 geom_bar 误差条
- flutter - 提供程序流更改之间的动画
- r - 如何在 Shiny 应用程序中正确使用 MutationObserve
- python-3.x - Plotly 表示不在 PyCharm SciView 中显示图
- c++ - 在运行时选择派生类并运行唯一的类方法
- php - laravel json 选择客户对象使用 hasMany 选择特定数据
- javascript - 如何通过让某人输入变量名来激活特定变量?
- javascript - 如何在nodeJS中检查与firebase db的连接
- kubernetes - 无法访问在 aws eks 中部署的服务
- python - 改进 tesseract 的图像预处理(视频游戏截图)