Hello @Naive_help
Use custom formats instead of character strings and this avoids the entire LENGTH issue.
proc format;
value smokef
low-<0="Error"
0-5="None (0-5)"
6-15="Moderate (6-15)"
16-25="Heavy (16-25)"
26-high="Very Heavy (>25)";
run;
data heart1; /* Or better yet, use PROC DATASETS to change a format */
set heart;
format smoking smokef.;
run;
Custom formats have another benefit ... the variable smoking remains numeric, and can be sorted NUMERICALLY. Your character variable SMOKING_STATUS will sort alphabetically, this is not what you want, and so any reports or tables created with a SMOKING_STATUS will look out-of-order.
... View more