KEEP= Data Set Option

For an input data set, specifies the columns to process; for an output data set, specifies the columns to write to the data set.
Valid in: DATA and PROC steps
Category: Variable Control
Supports: All

Syntax

KEEP=column(s)

Syntax Description

column(s)
lists one or more column names. You can list the columns in any form that SAS allows.

Details

When the KEEP= data set option is associated with an input data set, only those columns that are listed after the KEEP= data set option are available for processing. When the KEEP= data set option is associated with an output data set, only the columns listed after the option are written to the output data set. However, all columns are available for processing.

Comparisons

  • The KEEP= data set option differs from the KEEP statement in the following ways:
    • In DATA steps, the KEEP= data set option can apply to both input and output data sets. The KEEP statement applies only to output data sets.
    • In DATA steps, when you create multiple output data sets, use the KEEP= data set option to write different columns to different data sets. The KEEP statement applies to all output data sets.
    • In PROC steps, you can use only the KEEP= data set option, not the KEEP statement.
  • The DROP= data set option specifies columns to omit during processing or to omit from the output data set.

Example: Limit Columns in the SET Statement

In this example, only IDNUM and SALARY are read from PAYROLL, and they are the only columns in PAYROLL that are available for processing:
data myfiles.bonus;
   set myfiles.payroll (keep=idnum salary);
   bonus=salary*1.1;
run;
proc print data=myfiles.bonus(obs=2);
  title 'bonus data set';
run;