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;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.