I am having an issue with shifting a counter Column down in SAS by One as it wont meet my conditions. data Distinct_Member1; set Distinct_Member;
by Member_ID startyear;
retain Count 0;
if first.Member_ID then Count = 0;
if (Purchased_Fruit in ('Apples') and Quantity_Purchased not in ('None') and group not in
('Females')) then Count = Count + 1;
if (Purchased_Fruit not in ('Apples') OR Quantity_Purchased in ('None') OR group in
('Females')) then Count = Count + 1
run; This is the code for the original Counter but now I want to Shift the Counter by 1 down as below Member_ID Purchased_Fruit Group Count Count_Shift 1 Apples Female 1 0 1 Apples Female 2 1 1 Apples Female 3 2 2 Apples Female 1 0 2 Apples Female 2 1 2 Bananas Female 0 2 2 Bananas Female 0 0 2 Apples Female 1 0 2 Apples Female 2 1 2 Apples Female 3 2 3 Apples Male 0 0 4 Pears Female 0 0 4 Apples Female 1 0 4 Oranges Female 0 1 I have tried a combination of this (below) and lag functions however I never seem to have the desired result. Any help or direction with how to achieve the Count_Shift column is appreciated! Thank you. data Distinct_Member2;
set Distinct_Member1;
by Member_ID;
retain Count_Shift 0; if first.Member_ID then Count_Shift = 0;
else if Count >0 then Count_Shift = Count - 1;
run;
... View more