2009-06-24 1 views
7

Есть ли эквивалент функции Oracle NVL в SAS?Рассматривать недостающие значения как ноль в SAS, где статья

Например, если у меня есть где положение в SAS, который говорит:

это не будет включать в себя все строки, которые имеют MYVAR =.

Если я хочу, чтобы рассматривать пропущенные значения как ноль, я должен сказать:

where myVar > -2 or missing(myVar) 

Я хотел бы быть в состоянии сделать что-то вроде:

where NVL(myVar, 0) > -2 // or some SAS equivalent 

Есть ли что-то подобное в SAS?

+1

Обратите внимание, что это только в не-SAS данных, что строки с MYVAR =. не будут включены. Причина в том, что пропущенные значения NULL, а сравнения с NULL всегда будут оцениваться как FALSE. В исходных данных SAS отсутствующие значения рассматриваются как неотрицательное число, которое меньше нуля. Итак, «где myVar> -2;» будет работать с отсутствующими значениями при работе с собственными данными SAS. –

ответ

13

coalesce function должен выполнить эту работу.

where coalesce(myVar,0) > -2 

Я не уверен, что если функция стала доступна в SAS 9, так что если у вас есть очень старая версия SAS это может не сработать.

7

Использование функции coalesce - правильный способ сделать это.

Но если у вас есть старая версия SAS, где сливаются не реализованы, вы можете использовать этот трюк:

where sum(myVar,0) > -2 

Если вы используете sum function в SAS для добавления, любой не недостающее число в суммирование приведет к тому, что результат не будет пропущен.

Таким образом, добавление 0 с помощью функции sum преобразует недостающее значение в 0, а значения без пропуска будут оставаться неизменными.

+1

+1: Это потрясающее предложение! Мы больше не поддерживаем SAS 8 для нашего продукта, поэтому я действительно не забочусь о том, был ли coalece доступным или нет, но если бы я это сделал, это было бы гениальное решение. – Adnan

-1

Одна вещь, которую y может сделать, это как массив varlistname var1 var2 var3 varn; если массив <>. затем вывод;

Это Ouput наборы данных, имеющие не относящиеся отсутствующие значения

Смежные вопросы