I have a few proc format values which I want to use in the second argument of put(source,format). For example: proc format library = work ;
value GROUP
0 = 'Controlled Hypertensive Patients'
1 = 'Uncontrolled Hypertensive Patients';
value COUNTRY
0 = 'CHINA'
1 = 'BRITAIN'
2 = 'USA';
run; I plan to use them in a do loop in data step. So lets say I have a dataset called 'have' that contains variables 'GROUP' and 'COUNTRY' (same names as the value formats). This is what I tried: %let var_format=GROUP COUNTRY
data want;
set have;
format Variable_label $150.;
do _i=1 to countw(symget('var_format'));
Variable_label = put( scan(symget('var_format'),_i) , scan(symget('var_format'),_i). ); end; drop _:; run; Unfortunately, in the second argument of the put(source,format) statement, it gave the following error in the log: Variable_label = put(scan(symget('var_format'),_i),scan(symget('var_format'),_i).);
----
85
76
ERROR 85-322: Expecting a format name.
ERROR 76-322: Syntax error, statement will be ignored. As such, is there anyway around this problem?
... View more