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;
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.