## Help using Base SAS procedures

Solved
Frequent Contributor
Posts: 126

I have this table

A      B

10     0.1

10    0.1

22     0.1

22    0.2

22    0.2

31     0.2

31     0.3

A      B     ID

10     0.1    1

10    0.1     1

22     0.1    2

22    0.2     2

22    0.2     2

31     0.2     3

31     0.3     3

Accepted Solutions
Solution
‎11-11-2014 10:46 AM
Posts: 1,270

data want;

set have;

by a;

if first.a then id+1;

run;

All Replies
Solution
‎11-11-2014 10:46 AM
Posts: 1,270

data want;

set have;

by a;

if first.a then id+1;

run;

Frequent Contributor
Posts: 126

I can not do that because A is not properly sorted???????????????

Posts: 1,270

What is the criteria to create id then?

Frequent Contributor
Posts: 126

the criteria is that A must be the same for the id=1.

Super User
Posts: 9,599

Then sort the data.  If you need original sorting then do:

data have;

set a;

prev_sort=_n_;

run;

proc sort data=have;

by a b;

run;

data want;

set have;

by a;

if first.a then id+1;

run;

proc sort data=want;

by prev_sort;

run;

However, if your test data is right (and after this sort statement I am not sure), just say:

data want;

set have;

do I=1 to 100;

if (i *10) < a <= ((I+1) * 10) then id=I;

end;

run;

🔒 This topic is solved and locked.

Discussion stats
• 5 replies
• 294 views
• 3 likes
• 3 in conversation