BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
DmytroYermak
Lapis Lazuli | Level 10

Hi all,

 

I have the following 

 

How is it possible to sort the dataset by 2 variables and assign a Sequence Number in one step?

data test;
	length division group $2.;
	infile datalines;
	input division group;
datalines;
a	t1
b	m2
a	t1
b	m2
a	t2
a	t2
a	t2
b	m2
a	t1
b	m1
b	m1
a	t2


;
run;

proc print data=test; run;

I need the following output:

 

1.jpg

1 ACCEPTED SOLUTION

Accepted Solutions
PeterClemmensen
Tourmaline | Level 20

Like this?

 

data test;
input division$ group$;
datalines;
a t1
b m2
a t1
b m2
a t2
a t2
a t2
b m2
a t1
b m1
b m1
a t2
;

proc sort data=test;
	by division group;
run;

data want;
	set test;
	by division group;
	Seq+1;
	if first.group then Seq=1;
run;

View solution in original post

4 REPLIES 4
PeterClemmensen
Tourmaline | Level 20

Like this?

 

data test;
input division$ group$;
datalines;
a t1
b m2
a t1
b m2
a t2
a t2
a t2
b m2
a t1
b m1
b m1
a t2
;

proc sort data=test;
	by division group;
run;

data want;
	set test;
	by division group;
	Seq+1;
	if first.group then Seq=1;
run;
Haikuo
Onyx | Level 15

There are many ways to do the sorting in SAS, for example

proc sort data=test out=want;
by division group;
run;

Or:

 

proc sql;
create table want as
select * from test
order by division, group
;
quit;

Also, Hash object can also do sort, but it will be overdone for your purpose.

 

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

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
  • 4 replies
  • 33465 views
  • 3 likes
  • 3 in conversation