You can use a SELECT-WHEN statement in SAS to assign values to a new variable based on the values of an existing categorical variable in a dataset.
This statement uses the following basic syntax:
data new_data; set my_data; select (Existing_Column); when ('value1') New_Column=1; when ('value2') New_Column=2; when ('value3') New_Column=3; otherwise New_Column=4; end; run;
This syntax produces a new column called New_Column whose values are dependent on the values in Existing_Column.
The following example shows how to use a SELECT-WHEN statement in practice.
Example: SELECT-WHEN in SAS
Suppose we have the following dataset in SAS that contains information about various basketball players:
/*create dataset*/ data my_data; input team $ rating $ points; datalines; Mavs Great 22 Mavs Good 29 Mavs OK 15 Mavs Bad 8 Spurs Good 30 Spurs OK 15 Spurs OK 20 Spurs Bad 7 ; run; /*view dataset*/ proc print data=my_data;
We can use the following SELECT-WHEN statement to create a new variable called Player_Status whose values depend on the value in the rating column:
/*create new dataset with Player_Status column*/ data new_data; set my_data; select (rating); when ('Great') Player_Status=1; when ('Good') Player_Status=2; when ('OK') Player_Status=3; otherwise Player_Status=4; end; run; /*view new dataset*/ proc print data=new_data;
Here is how the values were generated in the new Player_Status column:
- If rating was equal to “Great” then Player_Status was assigned 1.
- If rating was equal to “Good” then Player_Status was assigned 2.
- If rating was equal to “OK” then Player_Status was assigned 3.
- If rating was not equal to any of the previously specified values then Player_Status was assigned 4.
Note: You can find the complete documentation for the SELECT statement in SAS here.
The following tutorials explain how to perform other common tasks in SAS: