04-14-2015 12:28 PM
We have physician data with taxID and need to split them equally to two groups. We want to keep the physicians together under same taxID.
First, we use the below coding to assign 0 and 1 based on taxID.
proc surveyselect data=test samprate=0.50 seed=49201 out=Sample outall
Then, they ask whether we could have a list which also consider the size of taxID(the physicians number), because each taxID have a vary number of physicians. For example, they probably have 1 physician or 20 physicians under each taxID.
So, the current question is how to split all of the taxID to 2 groups randomly, which also make sure they have similiar amount physicians under each group.
04-14-2015 04:25 PM
If I sort taxID by number of physician, then randomly assign them to two groups, I guess, they might have similar physician number.
04-14-2015 05:20 PM
Technically putting another requirement on the resulting sample changes the "random selection" behavior you may have chosen. One approach would be to have a summary of the TaxId with the number of physicians at each. Select a sample of TaxIds in your groups/strata what ever. Examine the sum of physicians. If the number is too far apart, rerun the sample until you get something "close enough". But you are playing somewhat loose with the probability of selection and resulting weights.