SAS будет определять переменную в зависимости от того, когда она появляется впервые.Поскольку первое появление в этом операторе присваивания.
if smokecat=0 then smokecat_1="Never Smoker";
Он будет определен как символьная переменная длиной 12.
Просто определите переменную ДО того, как ее использовать.Вы можете использовать оператор LENGTH
length smokecat_1 $25;
или оператор ATTRIB
для определения переменной.
attrib smokecat_1 length=$25;
Присоединение формата $25.
не меняет длинупеременная.Это просто означает, что вы хотите, чтобы SAS использовал 25 символов для отображения значений.Но эта переменная будет по-прежнему содержать только 12 символов.Нет необходимости прикреплять любой формат к переменной.Форматы - это инструкции о том, как отображать значения, а SAS уже знает, как отображать значения символов.