- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
I want to add ID
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
data want;
set have;
by a;
if first.a then id+1;
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
I can not do that because A is not properly sorted???????????????
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
What is the criteria to create id then?
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
the criteria is that A must be the same for the id=1.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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;