Вы можете использовать ПЕРВЫЙ. и ПОСЛЕДНИЙ. функции в SAS для определения первого и последнего наблюдения по группе в наборе данных SAS.
Вот что делает каждая функция в двух словах:
- FIRST.variable_name присваивает значение 1 первому наблюдению в группе и значение 0 каждому другому наблюдению в группе.
- LAST.variable_name присваивает значение 1 последнему наблюдению в группе и значение 0 каждому другому наблюдению в группе.
В следующих примерах показано, как использовать каждую функцию на практике со следующим набором данных в SAS:
/\*create dataset\*/
data my_data;
input team $ points rebounds;
datalines ;
Mavs 29 10
Mavs 13 6
Mavs 22 5
Mavs 20 9
Spurs 13 9
Spurs 15 10
Spurs 33 8
Spurs 27 11
Rockets 25 8
Rockets 14 4
Rockets 16 7
Rockets 12 4
;
run ;
/\*view dataset\*/
proc print data =my_data;

Пример 1: Как использовать FIRST. в САС
Мы можем использовать следующий FIRST. в SAS, чтобы присвоить значение 1 первому наблюдению для каждой команды в наборе данных:
/\*sort dataset by team\*/
proc sort data =my_data;
by team;
run ;
/\*create new dataset that labels first row for each team\*/
data first_team;
set my_data;
by team;
first_team=first.team;
run ;
/\*view dataset\*/
proc print data =first_team;

Обратите внимание, что столбец first_team присваивает первому наблюдению для каждой команды значение 1.Всем остальным значениям присваивается значение 0 .
Вы также можете использовать следующий код для создания нового набора данных, который содержит только первое наблюдение для каждой команды:
/\*sort dataset by team\*/
proc sort data =my_data;
by team;
run ;
/\*create new dataset only contains first row for each team\*/
data first_team;
set my_data;
by team;
if first.team;
run ;
/\*view dataset\*/
proc print data =first_team;

Обратите внимание, что набор данных содержит только первое наблюдение для каждой команды.
Пример 2: Как использовать LAST. в САС
Мы можем использовать следующий LAST. в SAS, чтобы присвоить значение 1 первому наблюдению для каждой команды в наборе данных:
/\*sort dataset by team\*/
proc sort data =my_data;
by team;
run ;
/\*create new dataset that labels last row for each team\*/
data last_team;
set my_data;
by team;
last_team=last.team;
run ;
/\*view dataset\*/
proc print data =last_team;

Обратите внимание, что в столбце last_team последнему наблюдению для каждой команды присваивается значение 1.Всем остальным значениям присваивается значение 0 .
Вы также можете использовать следующий код для создания нового набора данных, который содержит только последнее наблюдение для каждой команды:
/\*sort dataset by team\*/
proc sort data =my_data;
by team;
run ;
/\*create new dataset only contains last row for each team\*/
data last_team;
set my_data;
by team;
if last.team;
run ;
/\*view dataset\*/
proc print data =last_team;

Обратите внимание, что набор данных содержит только последнее наблюдение для каждой команды.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
Как изменить порядок переменных в SAS
Как пометить переменные в SAS
Как переименовать переменные в SAS