BookmarkSubscribeRSS Feed
molla
Fluorite | Level 6

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

2 REPLIES 2
PGStats
Opal | Level 21

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;

 

PG
Astounding
PROC Star

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;

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1213 views
  • 0 likes
  • 3 in conversation