I regularly have to process flags from comma-separated character fields that look like this: example_field = "AX,EQ,XX,TY,M,GY,TS,Z,WP,DL"; My current process involves the following steps: Data step that iterates through the comma-separated values and outputs each one into a new dataset Proc freq of those values and store them into macro variables A second data step that checks for the presence of the values and assigns them to a binary variable flag I am wondering whether all of this can be reduced to a single datastep. I have dozens of variable like this and I would like to create a macro that can dynamically create flags for each comma-separated value in one datastep. Something like this: data tmp; example_field = "AX,EQ,XX,TY,M,GY,TS,Z,WP,DL"; %expand_list(example_field); /* yields the output: flag_AX flag_EQ flag_XX ... flag_DL */ run; Is this wishful thinking? I understand the timing issues between the data step and the macro compilation steps so I think I may be out of luck. I'm hoping someone can give me a glimmer of hope, though. Maybe something like proc FCMP? The flag doesn't have to be strictly [1,0], it could also be [1, .]
... View more