SAS Day 19: Format
**Background: **
In clinical datasets, we usually use some shortcode to keep the data to be concise, meanwhile, we want to generate detailed table labels from the datasets so the output is reader-friendly. For example, in the dataset, we have “F, M”, and we want to show “Female, Male” in output tables.
How do we convert the shortcode from the dataset into the detailed labels in output?
Problem:
We want to label the Complete Response, Unconfirmed Complete Response, Partial Response, Stable Disease and Disease Progression according to correspondence AVAL(analysis value) .
There are a couple of methods to achieve this goal, however, what is the most efficient way?
[caption id=“attachment_1458” align=“alignnone” width=“500”]
Alexas_Fotos / Pixabay[/caption]
Solution:
Method 1. If Clause:
if aval=1 then label="CR ";
if aval=2 then label="CRu";
if aval=3 then label="PR ";
Method 2. Format:
proc format;
value aval
1="CR - n(%)"
2="CRu - n(%)"
3="PR - n(%)"
4="SD - n(%)"
5="PD - n(%)"
;
data sample;
set sample;
label=" "||put(aval,aval.);
run;
Output:
Basic Format Syntax:
proc format;
value variable
1="x"
2="y"
3="z"
;
data all;
set all1;
label= " "||put(variable,variable.);
run;
Summary:
To create a specific label to clearly express the data information to the audience, the “If clause” is the most straight forward way. The “Format” expression is a more systematical way that could build for repetitive usage. In addition, “Format” is critical in Date expressions.