Синтаксис шага данных отличается от синтаксиса sql; (Это потому, что SAS старше SQL)
Самый правильный ответ
data FILTERED;
set UNFILTERED;
if missing(X) then output;
run;
Альтернативы
Сокращение
Вы также можете использовать if missing(X);
, сокращенное обозначение if not missing(X) then delete;
.
Предложение where
См. Ответ пользователя itsMeInMiami и мой ответ
Использование литералов
В символьных переменных SAS нельзя использовать специальное значение, указывающее, что они отсутствуют. if missing(MyCharVar)
на самом деле является сокращением для if MyCharVar = ''
.
Numeri c переменных, однако может принимать разные значения "null
", подробнее здесь .
На практике используется только один, и он имеет буквальное значение .
:
- это начальное значение числовой переменной c перед присвоением
- это результат деления на ноль
- это результат вычислений с отсутствующими переменными
- это результат внешнего соединения, если в таблице нет наблюдения, значение должно быть