gpt4 book ai didi

r - 根据更改的日期范围自动子集 R 数据框

转载 作者:行者123 更新时间:2023-12-03 23:02:04 25 4
gpt4 key购买 nike

我有一个每月运行的 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 后类(class)

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 - 根据更改的日期范围自动子集 R 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65028991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com