Detecting the end of a SAS data set ( end= )
The END= option can help you determine when you have reached the last record in your dataset. Here is a syntax example:
data new_ds;
set old_ds end=end_var;
if end_var=1 then text='This is the last variable';
run;
The end= option creates a temporary variable, in the example it is end_var. This variable is not written to the output dataset. The variable is numeric and has a value of 1 to specify the last record.
Do not use this option with the point option.
This option is helpful when you only want to output the last record (good for summing data).
data new_ds (drop=transactional_record);
set old_ds end=last_record;
sum_var+transactional_record;
if last_record=1;
run;
Using SELECT groups for conditional processing
What are Select Groups?
Select Groups are another way SAS enables conditional processing of datasets.
When should we use Select Groups instead of if-then statements?
According to our friends at SAS, you should utilize Select Groups when your conditional criteria is mutually exclusive and numeric. When this is the case, Select Groups are more efficient than if-then processing.
Here are a few examples of conditional processing using Select Groups:
data NEW_DS;
set DS1;
select var1;
when (1) var2='YES';
when (2) var2='NO';
otherwise var2='UNKNOWN';
end;
run;
data NEW_DS;
set DS1;
select;
when (var1=1 and var2='JAN') var3='YES';
when (var1=2 and var2='FEB') var3='NO';
otherwise var3='UNKNOWN';
end;
run;
Here is the basic syntax for INTNX: