SAS День 11: COALESCEC

Проблема: мы хотим выбрать непропущенное значение среди qs1 до qs5 как QSSTRESN.

Желаемый результат:

Общие сведения о функции SAS:
COALESECEC: возвращает первую непропущенную строку символов среди входных переменных
Синтаксис:Coalescec(" ", "a")=a

пиксель2013 / Pixabay

Решение:

qsorres= strip(coalescec(qsorres1,qsorres2,qsorres3,qsorres4,qsorres5));

Альтернативное решение:
использование массива

array values {*} $200 QS1 QS2 QS3 QS4 QS5; 
do i =1 to dim(values); if values{i} ne "" then QSORRES=strip(values{i});
end;

Мини-прием:
объединить вернуть первые непустые числовые значения.
объединить(.,1,2)=1

Примечание.
Coalesce иногда НЕ работает в Proc SQL, поскольку SQL присваивает значение переменной, даже если счетчик отсутствует.
Этот код НЕ будет работать: выберите объединение (счетчик, 0) в качестве счетчика.

Удачного кодирования SAS!🤪

Первоначально опубликовано на fangya18.com 11 октября 2018 г.