Previous Page | Next Page

Statements

INPUT Statement, Column



Reads input values from specified columns and assigns them to the corresponding SAS variables.
Valid: in a DATA step
Category: File-handling
Type: Executable

Syntax
Arguments
Details
When to Use Column Input
Missing Values
Reading Data Lines
Reading Variable-Length Records
Examples
See Also

Syntax

INPUT variable <$> start-column <- end-column>
<.decimals> <@ | @@>;


Arguments

variable

specifies a variable that is assigned input values.

$

indicates that the variable has character values rather than numeric values.

Tip: If the variable is previously defined as character, $ is not required.
start-column

specifies the first column of the input record that contains the value to read.

-end-column

specifies the last column of the input record that contains the value to read.

Tip: If the variable value occupies only one column, omit end-column.
Example: Because end-column is omitted, the values for the character variable GENDER occupy only column 16:
input name $ 1-10 pulse 11-13 waist 14-15
      gender $ 16;
.decimals

specifies the number of digits to the right of the decimal if the input value does not contain an explicit decimal point.

Tip: An explicit decimal point in the input value overrides a decimal specification in the INPUT statement.
Example: This INPUT statement reads the input data for a numeric variable using two decimal places:
Input Data Statement Results
----+---1


2314 
input number 1-5 .2;
23.14
2

.02
400

4.00
-140

-1.40
12.234

12.234
*
12.2

12.2
*
* The decimal specification in the INPUT statement is overridden by the input data value.

@

holds the input record for the execution of the next INPUT statement within the same iteration of the DATA step. This line-hold specifier is called trailing @.

Restriction: The trailing @ must be the last item in the INPUT statement.
Tip: The trailing @ prevents the next INPUT statement from automatically releasing the current input record and reading the next record into the input buffer. It is useful when you need to read from a record multiple times.
See: Pointer Controls.
@@

holds the input record for the execution of the next INPUT statement across iterations of the DATA step. This line-hold specifier is called double trailing @.

Restriction: The double trailing @ must be the last item in the INPUT statement.
Tip: The double trailing @ is useful when each input line contains values for several observations.
See: Using Line-Hold Specifiers.

Details


When to Use Column Input

With column input, the column numbers that contain the value follow a variable name in the INPUT statement. To read with column input, data values must be in

Useful features of column input are that


Missing Values

Missing data do not require a place-holder. The INPUT statement interprets a blank field as missing and reads other values correctly. If a numeric or character field contains a single period, the variable value is set to missing.


Reading Data Lines

SAS always pads the data records that follow the DATALINES statement (in-stream data) to a fixed length in multiples of 80. The CARDIMAGE system option determines whether to read or to truncate data past the 80th column.


Reading Variable-Length Records

By default, SAS uses the FLOWOVER option to read varying-length data records. If the record contains fewer values than expected, the INPUT statement reads the values from the next data record. To read varying-length data, you might need to use the TRUNCOVER option in the INFILE statement. The TRUNCOVER option is more efficient than the PAD option, which pads the records to a fixed length. For more information, see Reading Past the End of a Line.


Examples

This DATA step demonstrates how to read input data records with column input:

data scores;
   input name $ 1-18 score1 25-27 score2 30-32
         score3 35-37;
   datalines;
Joseph                  11   32   76
Mitchel                 13   29   82
Sue Ellen               14   27   74
;


See Also

Statement:

INPUT Statement


FOOTNOTE 1:   See SAS Language Reference: Concepts for the definition of standard and nonstandard data values. [arrow]

Previous Page | Next Page | Top of Page