根据R Studio中的“月和日”列,按几年的季节性范围过滤数据

时间:2020-10-02 00:16:00

标签: r filter

我正在尝试过滤大型数据集,以包含几年中几天到几个月之间的结果,以评估季节性目标。我的季节是从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很陌生,无法在线找到任何解决方案。我知道一定有某种简单的方法可以做到这一点!任何帮助将不胜感激!

1 个答案:

答案 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']
相关问题