объединить строки в SAS - PullRequest
       16

объединить строки в SAS

0 голосов
/ 17 февраля 2019

используется ||объединить две строки и перезаписать одну из переменных.Но перезапись иногда не происходит.

Вот мой первый код:

data aa;
length a b $3;
a = 'FA';
b = '1';
a = a || b;
run;

Значение по-прежнему равно "FA".Но если мы заменим сцепление на: $ b = a ||б;тогда b будет иметь значение «FA1».

Может кто-нибудь объяснить, почему это происходит

1 Ответ

0 голосов
/ 17 февраля 2019

Символьные переменные SAS хранят завершающие пробелы значения для заполнения переменной длины.Значения, объединенные с оператором конкатенации ||, никак не изменяются, поэтому эффективная (с точки зрения значений) операция с переменными:

a = "FA " || "1  "

Таким образом, FA<space>1<space><space> складывается в $ 3 и усекаетсяFA<space>

Код старой школы будет

a = trim(left(a))||left(b);

Просмотрите семейство функций CAT* для объединения значений с усечением, разделением и разделением.Например:

a = cats(a,b);
...