Hi ,
I need the following output
id sal out
2 500
2 500
2 500 500
3 600
3 600
3 600 600
4 700
4 700
4 700 700
Assuming what you want is variable out = last value of variable sal for each id, a double DO UNTIL() will do the job:
data want;
do until (last.id);
set have; by id;
end;
lastSal = sal;
do until (last.id);
set have; by id;
out = lastSal;
output;
end;
drop lastSal;
run;
Since you didn't mention any input, I have to assume you want a program to generate this data.
data want;
do id=2 to 4;
out=300 + id*100;
do obsnum=1 to 3;
if obsnum=3 then sal=out;
output;
end;
end;
drop obsnum;
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.