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;
Thanks in advance.
V
"other" is a keyword when creating formats. A pseudo-value of "other" covers all values not dealt with by the other entries.
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.
If you want more confidence that "other" won't be treated as a keyword, add this to your DATA step:
hlo=' ';
Got an official reply from SAS:
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.