Sorry, I think I have done a poor job of explaining what I'm doing. I am looking to have a macro with an unknown number of parameters, and then within the macro, create new variables based on the names of those parameters and the value of the variables that they reference. I figured that to do this, I should bring the parameters in via a string list or an array, and then read them out to create and set the new variable. I am able to hardcode this functionality for one (or a known set of parameters)with something like this: %macro dostuff(a,b); &a._temp = &a; &b._temp = &b; %mend dostuff; data _null_; ONE = 1; TWO = 2; %dostuff(ONE,TWO); run; would yield ONEtemp = 1 and TWOtemp = 2. However, when I pass with an array (like parts{*} ONE TWO), I am having trouble creating the new variable name, and when I pass with a string list (like "ONE,TWO"), I am having trouble referencing the value of the named variable. So this question was originally in regards to how to do this with a string list -- but the array route (or any other) is fine with me. Thanks very much for your help! -Bob
... View more