I have a dataset
FiscalDate year Value
01JAN2012 2012 2
14JAN2012 2012 3
15JAN2012 2012 4
04FEB2012 2012 6
05FEB2012 2012 7
01JAN2013 2013 1
12JAN2013 2013 2
08MAR2014 2014 10
09MAR2014 2014 11
If it is the first instance of the year and has a value of 2 than it should be reduced by 1. Here is the output that I need
FiscalDate year Value
01JAN2012 2012 1
14JAN2012 2012 2
15JAN2012 2012 3
04FEB2012 2012 5
05FEB2012 2012 6
01JAN2013 2013 1
12JAN2013 2013 2
08MAR2014 2014 10
09MAR2014 2014 11
Data is sorted by date
As long as YEAR is also part of the data set, you can use it:
data want;
set have;
by year;
if first.year then do;
if value=2 then increment = -1;
else increment = 0;
end;
retain increment;
value = value + increment;
run;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.