SAS Variable Lists

Definition

A SAS variable list is an abbreviated method of referring to a list of variable names. SAS enables you to use the following variable lists:
  • numbered range lists
  • name range lists
  • name prefix lists
  • special SAS name lists
With the exception of the numbered range list, you refer to the variables in a variable list in the same order that SAS uses to keep track of the variables. SAS keeps track of active variables in the order in which the compiler encounters them within a DATA step, whether they are read from existing data sets, an external file, or created in the step. In a numbered range list, you can refer to variables that were created in any order, provided that their names have the same prefix.
You can use variable lists in many SAS statements and data set options, including those that define variables. However, they are especially useful after you define all of the variables in your SAS program because they provide a quick way to reference existing groups of data.
Note: Only the numbered range list is used in the RENAME= option.

Numbered Range Lists

Numbered range lists require you to have a series of variables with the same name, except for the last character or characters, which are consecutive numbers. For example, the following two lists refer to the same variables:
x1,x2,x3,...,xn

x1-xn
In a numbered range list, you can begin with any number and end with any number as long as you do not violate the rules for user-supplied variable names and the numbers are consecutive.
For example, suppose you decide to give some of your numeric variables sequential names, as in VAR1, VAR2, and so on. Then, you can write an INPUT statement as follows:
input idnum name $ var1-var3;
Note that the character variable NAME is not included in the abbreviated list.

Name Range Lists

Name range lists rely on the order of variable definition, as shown in the following table:
Name Range Lists
Variable List
Included Variables
x--a
all variables in order of variable definition, from X to A inclusive
x-numeric-a
all numeric variables from X to A inclusive
x-character-a
all character variables from X to A inclusive
You can use the VARNUM option in PROC CONTENTS to print the variables in the order of definition.
For example, consider the following INPUT statement:
input idnum name $ weight pulse chins;
In later statements, you can use these variable lists:
/* keeps only the numeric variables idnum, weight, and pulse */ 
keep idnum-numeric-pulse;

/* keeps the consecutive variables name, weight, and pulse */ 

keep name--pulse;

Name Prefix Lists

Some SAS functions and statements enable you to use a name prefix list to refer to all variables that begin with a specified character string:
sum(of SALES:)
This character string tells SAS to calculate the sum of all the variables that begin with “SALES,” such as SALES_JAN, SALES_FEB, and SALES_MAR.

Special SAS Name Lists

Special SAS name lists include:
_NUMERIC_
specifies all numeric variables that are already defined in the current DATA step.
_CHARACTER_
specifies all character variables that are currently defined in the current DATA step.
_ALL_
specifies all variables that are currently defined in the current DATA step.