#sas #enterprise-guide
#sas #enterprise-guide
Вопрос:
что означает «если сначала.col3»? (Руководство по Sas enterprise)
Data table2;
set table1;
by col1 col2;
if first.col3;
run;
после «if first.col3» нет инструкции
Ответ №1:
first.<variable-name>
это специальная переменная, для которой устанавливается значение 1
, когда имя переменной указано в BY
инструкции, А значение из первой строки новой группы, состоящей из переменной by и подчиненных ей переменных by.
Для варианта использования first.<variable-name>
и имя переменной НЕ указано в BY
инструкции, вы получите строку журнала с указанием
NOTE: first.<variable-name> is uninitialized.
Неинициализированным переменным присваивается пропущенное значение в начале шага обработки ДАННЫХ.
if <expression>
Оператор БЕЗ a then
называется подмножеством if, и управление программой продолжается после него только тогда, когда выражение истинно.
Если в вашем случае if first.col3
есть выражение, которое никогда не является истинным, поскольку col3
не указано в BY
инструкции, поэтому управление никогда не передавалось за пределы подмножества if
.
Шаг ДАННЫХ без явно закодированного OUTPUT
оператора по умолчанию выводит строку, когда элемент управления достигает конца шага.
В вашем случае элемент управления никогда не достигает конца шага, поэтому вывод никогда не выполняется, и результирующий набор данных table2
будет иметь нулевые строки.