02-07-2017 03:42 AM
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;
02-07-2017 03:48 AM
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;