I have a similar problem, but now I need to view the longest sequence of consecutive days with temperature greater than 90° for each period Jan-Aug 1999 - 2018 (YTD). Below is similar code I used from the last post, but now I need to change proc summary such that the data from Jan - Aug for runlength are added together for each year: /* create indicator variable for Max Temp >= 90 (gt90) */
data ytd_weather1;
set demo5.ytd_weather;
gt90 = Max_Temp ge 90;
format date date11.;
run;
/* create start and end dates for the beginning and end of each month */
proc summary nway data=ytd_weather1;
by gt90 notsorted;
class date;
format date monyy7.;
output out=runs(drop=_type_ rename=(_freq_=runlength) where=(gt90 eq 1)) idgroup(out(date)=start) idgroup(last out(date)=end);
format start: end: date11.;
run;
/* run the proc summary to view the longest sequence of consecutive days with temperature greater than 90 for each YTD AUG 1999 - 2018 */
proc summary data=runs nway;
class date;
output out=maxrun(drop=_:) max(runlength)=;
run; current output: Date runlength Apr1999 2 May1999 5 Jun1999 10 Jul1999 9 Aug1999 18 Apr2000 5 May2000 9 Jun2000 8 Jul2000 31 Aug2000 16 Apr2001 1 May2001 9 Jun2001 13 Jul2001 31 Aug2001 9 Apr2002 2 May2002 4 Jun2002 24 Jul2002 10 Aug2002 28 May2003 8 Jun2003 24 Jul2003 28 Aug2003 15 May2004 11 Jun2004 21 Jul2004 23 Aug2004 13 May2005 7 Jun2005 26 Jul2005 26 Aug2005 6 Apr2006 2 May2006 14 Jun2006 25 Jul2006 19 Aug2006 7 May2007 5 Jun2007 18 Jul2007 7 Aug2007 27 Apr2008 1 May2008 7 Jun2008 23 Jul2008 7 Aug2008 6 May2009 12 Jun2009 8 Jul2009 31 Aug2009 23 May2010 6 Jun2010 28 Jul2010 13 Aug2010 23 Apr2011 1 May2011 7 Jun2011 30 Jul2011 28 Aug2011 17 Mar2012 1 Apr2012 6 May2012 15 Jun2012 30 Jul2012 15 Aug2012 16 Apr2013 2 May2013 7 Jun2013 30 Jul2013 12 Aug2013 13 May2014 6 Jun2014 30 Jul2014 15 Aug2014 7 May2015 3 Jun2015 30 Jul2015 31 Aug2015 31 May2016 6 Jun2016 25 Jul2016 30 Aug2016 12 Mar2017 1 Apr2017 2 May2017 4 Jun2017 28 Jul2017 15 Aug2017 17 Apr2018 2 May2018 14 Jun2018 15 Jul2018 21 Aug2018 19 desired output: Date runlength 1999 44 2000 69 2001 63 2002 68 2003 75 2004 68 2005 65 etc to 2018 Thanks.
... View more