## Data step counting by 2 variables

Solved
Occasional Contributor
Posts: 5

# Data step counting by 2 variables

Hi,

I have a code to count duplicated items:

data work.rank;

set work.Inbound;

by ITEM;
if first.ITEM then Rank=1;
else Rank+1;
Run;

This is great and does the job i want.

However, i'm now bringing through data from different countries so i now have a column that shows which country the items are in. In order for this code to work i have to have the data sorted by Item so that it can count. However i don't want to include different country data in the count. So if there is 1 item in GB 5 times it will rank it 1,2,3,4 and 5 etc, but when it goes to say FR and has the same Item, i want that one to start at 1.

eg:

 Country Item Rank GB 123 1 GB 123 2 GB 123 3 GB 1234 1 GB 1234 2 FR 12 1 FR 123 1 FR 123 2 FR 1234 1

The original code i had was perfect for use in 1 country but as soon as i brought through more it is failing as i tried sorting by country first and then item.

any help would be brilliant.

Apologies if what i am asking is silly.

Cheers,

M.

Accepted Solutions
Solution
‎11-02-2017 05:54 AM
Super User
Posts: 10,269

## Re: Data step counting by 2 variables

[ Edited ]

Sort by item and country, and then use

``by item country;``

and first.country for the condition in your datastep.

Or simply sort by country and item, and use

``by country item;``

in your original datastep with the same first. condition.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code

All Replies
Solution
‎11-02-2017 05:54 AM
Super User
Posts: 10,269

## Re: Data step counting by 2 variables

[ Edited ]

Sort by item and country, and then use

``by item country;``

and first.country for the condition in your datastep.

Or simply sort by country and item, and use

``by country item;``

in your original datastep with the same first. condition.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code
Super User
Posts: 9,599