I am not an expert in SAS Macro but I haven't seen the syntax/option that you are using before. In particular this on the print statement (obs=&obs)
Could you explain this?

Thank you
John Keighley