PUT Statement: Named

Writes variable values after the variable name and an equal sign.

Valid in: DATA step
Categories: CAS
File-Handling
Type: Executable

Syntax

PUT <pointer-control> variable= <format.> <@ | @@>;

Arguments

pointer-control

moves the output pointer to a specified line or column in the output buffer.

See Column Pointer Controls
Line Pointer Controls

variable=

specifies the variable whose value is written by the PUT statement in the form

variable=value

format.

specifies a format to use when the variable values are written.

Tip Ensure that the format width provides enough space to write the value and any commas, dollar signs, decimal points, or other special characters that the format includes.
See Formatting Named Output
Examples This PUT statement uses the format DOLLAR7.2 to write the value of X:
put x= dollar7.2;
When X=100, the formatted value uses seven columns:
X=$100.00

start-column

specifies the first column of the field where the variable name, equal sign, and value are to be written in the output line.

– end-column

determines the last column of the field for the value.

Tip If the variable name, equal sign, and value require more space than the columns specified, PUT writes past the end column rather than truncate the value. You must leave enough space before beginning the next value.

.decimal-places

specifies the number of digits to the right of the decimal point in a numeric value. If you specify 0 for d or omit d, the value is written without a decimal point.

Range positive integer

@ | @@

holds an output line for the execution of the next PUT statement even across iterations of the DATA step. These line-hold specifiers are called trailing @ and double trailing @.

Restriction The trailing @ or double trailing @ must be the last item in the PUT statement.
See Using Line-Hold Specifiers

Details

Using Named Output

With named output, follow the variable name with an equal sign in the PUT statement. You can use either list output, column output, or formatted output specifications to indicate how to position the variable name and values. To insert a blank space between each variable value automatically, use list output. To align the output in columns, use pointer controls or column specifications.

Formatting Named Output

You can specify either a SAS format or a user-written format to control how SAS prints the variable values. The width of the format does not include the columns required by the variable name and equal sign. To align a formatted value, SAS deletes leading blanks and writes the variable value immediately after the equal sign. SAS does not align on the right side of the formatted length, as in unnamed formatted output.

For a complete description of the SAS formats, see Definition of Formats in SAS Formats and Informats: Reference.

Example: Using Named Output in the PUT Statement

Use named output in the PUT statement as shown here.

  • This PUT combines named output with column pointer controls to align the output:
    data _null_;
       input name $ 1-18 score1 score2 score3;
       put name = @20 score1= score3= ;
       datalines;
    Joseph                  11   32   76
    Mitchel                 13   29   82
    Sue Ellen               14   27   74
    ;

    The program writes these lines to the SAS log:

    ----+----1----+----2----+----3----+----4
    NAME=Joseph        SCORE1=11 SCORE3=76
    NAME=Mitchel       SCORE1=13 SCORE3=82
    NAME=Sue Ellen     SCORE1=14 SCORE3=74
  • This example specifies an output format for the variable AMOUNT:
    put item= @25 amount= dollar12.2;

    When the value of ITEM is binders and the value of AMOUNT is 153.25, this output line is produced:

    ----+----1----+----2----+----3----+----4
    ITEM=binders            AMOUNT=$153.25

See Also

Last updated: June 17, 2025