The following procudes the error: for format lookup_acbs, this range is repeated, or values overlap:
proc sort data=acbs nodupkey;
by acbs_products;
run;
data lookup_acbs;
set acbs;
start=acbs_products;
label='KEEP';
fmtname='lookup_acbs';
proc format cntlin=lookup_acbs; run;
I am trying to create a format for a list of product names (approx 200), which look like...
CALOGEN
CALSHAKE
CARBZERO
CARE CO-LACTASE
...
Obviously as I used 'proc sort nodupkey', there should be no duplicates... I wonder if anyone can tell me why the proc format is not working? Is it to do with the presence of spaces in the product names?
Many thanks,
Add a type to make the format a character format:
proc sort data=acbs nodupkey;
by acbs_products;
run;
data lookup_acbs;
set acbs;
start=acbs_products;
label='KEEP';
type = 'C'; /* this is important */
fmtname='lookup_acbs';
run;
proc format cntlin=lookup_acbs;
run;
Otherwise, proc format tries to create a numeric format and gets only missing values, as the character values can't be converted to numeric.
Add a type to make the format a character format:
proc sort data=acbs nodupkey;
by acbs_products;
run;
data lookup_acbs;
set acbs;
start=acbs_products;
label='KEEP';
type = 'C'; /* this is important */
fmtname='lookup_acbs';
run;
proc format cntlin=lookup_acbs;
run;
Otherwise, proc format tries to create a numeric format and gets only missing values, as the character values can't be converted to numeric.
... and some SAS messages are not that intuitive, especially for newcomers 🙂
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 16. Read more here about why you should contribute and what is in it for you!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.