Да, это тест для непустых значений. Я использовал его в течение многих лет, в основном при интерактивном просмотре набора данных. Я подозреваю, что это происходило с тех пор, как SAS ввел оператор WHERE, или, по крайней мере, с тех пор, как они пересмотрели его для использования того же синтаксиса, что и предложения SQL WHERE.
В операторах WHERE используется PRO C SQL синтаксис стиля (использование LIKE без использования списков переменных), но операторы IF используют обычный синтаксис SAS.
Так что, если вы использовали
if name ;
на шаге данных, вы увидите заметки о том, что SAS пытается преобразовать символьную переменную NAME в число, которое может быть оценено как FALSE (ноль отсутствует) ) или ИСТИНА (любое другое значение). Поскольку имена в SASHELP.CLASS не могут быть преобразованы в числа, все они будут рассматриваться как ЛОЖЬ.