I still didn't get what you are trying to do, but...
This...
[pre]
drops = 'Drop'||&rptorder;
CALL SYMPUT('Drops',RecKept);
[/pre]
will result on assigning the value of the RecKept dataset varialbe to the macro variable named Drops.
If you are trying to assign a value to a macro variable which the name corresponds to the value of the dataset variable Drops, you should do it the following way (I'm assuming that the macro variable rptorder resolves to: 1):
[pre]
drops=cats('Drop',"&rptorder"); * concat Drop&rptorder and trim blanks;
call symput(drops,RecKept);
[/pre]
If rptorder resolves to a dataset variable name, just remove the double quotes around it.
This will assign the value of the dataset variable RecKept to the macro variable named Drop1.
Hope it helps.
Cheers from Portugal.
Daniel Santos @
www.cgd.pt