length
является декларативным оператором и вводит переменную в вектор данных программы (PDV) с заданной вами длиной c. Когда в формуле используется необъявленная переменная, SAS назначает ей длину по умолчанию в зависимости от формулы или контекста использования.
Символьные переменные в SAS имеют фиксированную длину и дополняются пробелами справа. Вот почему trim(firstname)
необходим, когда происходит || lastname
конкатенация. Если это не так, то правильное заполнение firstname
будет частью значения в операциях конкатенации, и может, вероятно, превысить длину переменной, получающей результат.
Там являются функциями конкатенации, которые могут упростить строковые операции
CAT
, аналогично использованию оператора <var>||
CATT
, аналогично использованию trim(<var>)||
CATS
аналогично использованию trim(left(<var>))||
CATX
аналогично использованию CATS
с разделителем. STRIP
аналогично trim(left(<var>))
Ваш выражение может быть перекодировано как:
fullname = catx(' ', firstname, lastname);