This tutorial explains the uses of PROC FORMAT in data analysis tasks. It includes several examples to help understand the practical application of PROC FORMAT.
In this tutorial, we will be using the dataset sashelp.cars
for demonstration purpose. See the sample data shown in the image below.
Sample Data |
Example 1 : Suppose you are asked to group MSRP variable based on the following conditions and check the number of observations falling in each groups.
- Values greater than 40,000 should be labeled as 'High'
- Values between 26,000 and 40,000 should be labeled as 'Medium'
- Otherwise, label them as 'Low'
proc format; value range 40000-high='High' 26000-< 40000='Medium' other ='Low'; run; proc freq data = sashelp.cars; table msrp; format msrp range.; run;
Example 2 : Same as with example 1. Here we are creating a new variable called TSRP based on the conditions applied on the MSRP variable.
Solution :proc format; value range 40000-high='High' 26000-< 40000='Medium' other ='Low'; run; data temp; set sashelp.cars; TSRP = put(msrp, range.); run;
The put()
function is used to apply the format. The line TSRP = put(msrp, range.);
applies the custom format range
to the msrp
variable and stores the formatted values in a new variable named TSRP
.
Example 3 : Subset Data - You can also filter data using PROC FORMAT.
The following code filters the dataset to only include observations where the formatted value is either 'High' or 'Medium'.
Method 1 :data temp;Method 2 :
set sashelp.cars;
where put(msrp, range.) IN ('High' 'Medium');
run;
data temp (where = (tsrp IN ('High' 'Medium')));Method 3 :
set sashelp.cars;
tsrp = put(msrp, range.);
run;
proc sql;
select *,
put(msrp, range.) as tsrp
from sashelp.cars
where calculated tsrp in ('High', 'Medium');
quit;
How to sum saary department wise using proc format
ReplyDeleteSalary*
DeleteHow do you make a format library auto-start for each new SAS session?
ReplyDelete