BookmarkSubscribeRSS Feed
Hypatia
Calcite | Level 5

Hi,

 

ID         GRP

0001       A

0002       A

0003       A

0004       B

0005       B

0006       

0007       B

0008       A

0009       

0010       

0011       B

0012       

0013       D

0014       B

0015       

0016       A

0017       

0018       A

0019       

0020       

0021       C

0022       

0023       

0024       C

0001       

0002       

0003       

0004      

0005       

 

 

 

 

 

I have the dataset above - I want to distribute the IDs to GRP (A or B) given the following conditions.

- If the repeated ID value has no assigned GRP then check from other observation if it has GRP value (A or B) and assign the GRP value, if no then assign new GRP.

- Distribute the unassigned IDs to GRP (A or B ) given that the GRP must have equal or at least near number of assigned IDs.

 

I know this can be done using loop in SAS but I don't know how to distribute the ID values after counting or getting the ID count on each group

 

Below is the desired output dataset.

 

ID         GRP

0001       A

0002       A

0003       A

0004       B

0005       B

0006       C

0007       B

0008       A

0009       C

0010       C

0011       B

0012       C

0013       D

0014       B

0015       B

0016       A

0017       D

0018       A

0019       A

0020       B

0021       C

0022       D

0023       C

0024       C

0001       A

0002       A

0003       A

0004       B

0005       B

 

This part explains the distribution of remaining IDs to the GRP.

 

GRP                             ID COUNT             ID COUNT (1ST ITERATION)             ID COUNT (2ND ITERATION)

A                                      6                                            6                                                   7

B                                      5                                            6                                                   7

C                                      2                                            6                                                   7

D                                      5                                            6                                                   7

 

REMAINING
ID COUNT                       10                                          4                                                   0

TO DISTRIBUTE

 

1 REPLY 1
ChrisNZ
Tourmaline | Level 20

Your explanations are unclear.

 

1. You end up with 10 A's not 7

 

2. Distribute the unassigned IDs to GRP (A or B ) given that the GRP must have equal or at least near number of assigned IDs.

?? Don't you distribute GRPs to IDs?

 

3. Please share the working code you have that does the first part of the work.

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