BookmarkSubscribeRSS Feed
Greisas
Fluorite | Level 6

hello,

I have this dataset:

id income1 income2 income3

1 20            30          0

2 4              30          70

3 80            25          30

And go on like this,

I have 100 variables, and 1000 observations.

How can I print only the top 20 observations from each variable, by id one by one in the same program?

Thanks for helping. 

1 REPLY 1
Kurt_Bremser
Super User

Try this:

proc transpose data=have out=int;
by id;
run;

data want (drop=counter);
set int;
by id;
if first.id
then counter = 1;
else counter + 1;
if counter le 20;
run;

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

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
  • 1 reply
  • 968 views
  • 0 likes
  • 2 in conversation