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 г.