BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
vicp
Fluorite | Level 6

Hi all

 

Could anybody tell me if the following behaviour is intended or not:

 

I created a format ($test2b) with the following dataset (created with datalines to simulate real data), with the expectation that the format will contain 2 values - 'other' and 'test'. Instead, the resulting format has only 1 value 'test' plus an other range (see image below)!  I could circumvent the issue by adding hlo=' '  to all records, just don't think this has been mentioned anywhere in the documentation.

 

data fmt1;

   infile datalines dlm=' ';

   length start label $32;

   input start label;

   fmtname='$test2b';

datalines;

other error

test ok

;

run;

 

proc format cntlin=fmt1;

run;

 

 otherrange.png

 

Thanks in advance.

 

V

 

1 ACCEPTED SOLUTION

Accepted Solutions
4 REPLIES 4
vicp
Fluorite | Level 6

Hi KurtBremser

"other" is not a keyword, rather other (without quote) is, i.e. there would differences between the formats created by the following examples:

****Example 1****;

proc format;
value $test1a
'other'=error
'test'=OK;
run;

****Example 2****;

proc format;
value $test1a
other=error
test=OK;
run;

 

Since I have using a dataset without specifying HLO='O', so 'other' should be consider as a text string like in Example 1 above.

Astounding
PROC Star

If you want more confidence that "other" won't be treated as a keyword, add this to your DATA step:

 

hlo=' ';

vicp
Fluorite | Level 6

Got an official reply from SAS:

 

procformat.PNG

 

 

 

 

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 1611 views
  • 4 likes
  • 3 in conversation