我正在尝试过滤大型数据集,以包含几年中几天到几个月之间的结果,以评估季节性目标。我的季节是从3月15日到9月15日。我不知道如何过滤日期,以便仅将它们应用于3月和9月,而不应用于该范围内的其他月份。我的数据框很大,并且包含专有信息,但是我认为最重要的信息是日期由列描述:SampleDate(日期格式为%y%m%d),日(数字)和月(数字)。
我尝试使用多种条件进行过滤,例如:
S1 <- S1 %>%
filter((S1$month >= 3 & S1$day >=15) , (S1$month<=9 & S1$day<=15 ))
我还尝试使用没有运气的数据每年设置介于之间的范围:
S1 %>% filter(between(SampleDate, as.Date("2010-03-15"), as.Date("2010-09-15") &
as.Date("2011-03-15"), as.Date("2011-09-15")&
as.Date("2012-03-15"), as.Date("2012-09-15")&
as.Date("2013-03-15"), as.Date("2013-09-15")&
as.Date("2014-03-15"), as.Date("2014-09-15")&
as.Date("2015-03-15"), as.Date("2015-09-15")&
as.Date("2016-03-15"), as.Date("2016-09-15")&
as.Date("2017-03-15"), as.Date("2017-09-15")&
as.Date("2018-03-15"), as.Date("2018-09-15")))
我对R很陌生,无法在线找到任何解决方案。我知道一定有某种简单的方法可以做到这一点!任何帮助将不胜感激!
答案 0 :(得分:0)
也许是这样的:
library(data.table)
df <- setDT(df)
# convert a date like this '2020-01-01' into this '01-01'
df[,`:=`(month_day = str_sub(date, 6, 10))]
df[month_day >= '03-15' & month_day <= '09-15']