DATA Step, Macro, Functions and more

Keeping first.variable

Reply
PROC Star
Posts: 551

Keeping first.variable

Hi. 

 

Why am I not allowed to keep a first.variable (or last.variable) when using by group processing?

 

I though that the first and last .variables were added to the PDV with an initial frop flag, which in my mind means that I kan also keep them if I want to?

 

I know that I can get around this issue by simply assigning the first.variable to a new variable as in the example below, but I am interested in the reason as to why the test1 dataset fails and the test2 dataset succeeds.

 

proc sort data = sashelp.cars out=testdata;
   by cylinders;
run;

data test1;
   set testdata;
   by cylinders;
   keep first.cylinders; 
run;

data test2;
   set testdata;
   by cylinders;
   first = first.cylinders;
   keep first;
run;

Regards

Super User
Posts: 6,936

Re: Keeping first.variable

The automatic variables created through dataset options (end=, nobs=, etc) or a by statement can never be kept in a dataset. You need to assign their values to "normal" variables, which will automatically appear in the output.

data want;
set have;
by group;
first_group = first.group;
run;
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Ask a Question
Discussion stats
  • 1 reply
  • 103 views
  • 0 likes
  • 2 in conversation