DATA Step, Macro, Functions and more

Question on dollar format

Reply
Super Contributor
Posts: 436

Question on dollar format

Following macro code only seemed to work if the dollar format was exact. That is, the dollar ranges were <$400, $400-$1000, and over $1000.  For the dollar format, if I put “dollar4.” for the $400 macro variable and “dollar5.” for the $1000 macro variable everything worked great.  But if I used “dollar5.” and “dollar6.” I would get the error message as below. Appreciate if someone guide me to come past this issue.

 

 

proc format;
value spnd&k.lbl    1 = &ls_lbl.
                    2 = &ms_lbl.
       		    3 = &hs_lbl.
     			          ;
run;

Log:

 

.

SYMBOLGEN:  Macro variable K resolves to 2
SYMBOLGEN:  Macro variable LS_LBL resolves to Less than  $400
SYMBOLGEN:  Macro variable MS_LBL resolves to  $400 to $1,000
ERROR: This range is repeated, or values overlap: 1-1.
SYMBOLGEN:  Macro variable HS_LBL resolves to More than $1,000
NOTE 137-205: Line generated by the invoked macro "RUNREPORTS".
141         row_nbr = &k.;  quit;      proc format;   value trip&k.lbl    1 = &lt_lbl.                       2 = &mt_lbl.
141      !     3 = &ht_lbl.              ;   value spnd&k.lbl    1 = &ls_lbl.                       2 = &ms_lbl.               3 =
                                                                                                                               _
                                                                                                                               22
141      ! &hs_lbl.
ERROR 22-322: Syntax error, expecting one of the following: (, ',', -, <, =.  

 

Super User
Posts: 11,343

Re: Question on dollar format

Try

proc format;
value spnd&k.lbl    1 = "&ls_lbl."
                               2 = "&ms_lbl."
       		               3 = "&hs_lbl."
     			          ;
run;

Without the quotes the second value fo &ms_lbl is interpreted as a new value not the display value.

 

Ask a Question
Discussion stats
  • 1 reply
  • 263 views
  • 1 like
  • 2 in conversation