Chapter Contents

Previous

Next

Using Informats


Ways to Specify Informats

You can specify informats in the following ways:


INPUT Statement

The INPUT statement with an informat after a variable name is the simplest way to read values into a variable. For example, the following INPUT statement uses two informats:

input @15 style $3. @21 price 5.2;
The $w. character informat reads values into the variable STYLE. The w.d numeric informat reads values into the variable PRICE.

For a complete discussion of the INPUT statement, see SAS Language Reference: Dictionary.

INPUT Function

The INPUT function reads a SAS character expression using a specified informat. The informat determines whether the resulting value is numeric or character. Thus, the INPUT function is useful for converting data. For example,

TempCharacter='98.6';
TemperatureNumber=input(TempCharacter,4.);
Here, the INPUT function in combination with the w.d informat reads the character value of TempCharacter as a numeric value and assigns the numeric value 98.6 to TemperatureNumber.

Use the PUT function with a SAS format to convert numeric values to character values. For an example of a numeric-to-character conversion, see the PUT function in SAS Language Reference: Dictionary. For a complete discussion of the INPUT function, see the INPUT function in SAS Language Reference: Dictionary.

INFORMAT Statement

The INFORMAT statement associates an informat with a variable. SAS uses the informat in any subsequent INPUT statement to read values into the variable. For example, in the following statements the INFORMAT statement associates the DATEw. informat with the variables Birthdate and Interview:

informat Birthdate Interview date9.;
input @63 Birthdate Interview;

An informat that is associated with an INFORMAT statement behaves like an informat that you specify with a colon (:) format modifier in an INPUT statement. (For details about using the colon (:) modifier, see the INPUT, List statement in SAS Language Reference: Dictionary.) Therefore, SAS uses a modified list input to read the variable so that

If you have coded the INPUT statement to use another style of input, such as formatted input or column input, that style of input is not used when you use the INFORMAT statement.

For more information on how to use modified list input to read data, see the INPUT, List statement in SAS Language Reference: Dictionary.

ATTRIB Statement

The ATTRIB statement can also associate an informat, as well as other attributes, with one or more variables. For example, in the following statements, the ATTRIB statement associates the DATEw. informat with the variables Birthdate and Interview:

attrib Birthdate Interview informat=date9.;
input @63 Birthdate Interview;

An informat that is associated by using the INFORMAT= option in the ATTRIB statement behaves like an informat that you specify with a colon (:) format modifier in an INPUT statement. (For details about using the colon (:) modifier, see the INPUT, List statement in SAS Language Reference: Dictionary.) Therefore, SAS uses a modified list input to read the variable in the same way as it does for the INFORMAT statement.

For more information, see the ATTRIB statement in SAS Language Reference: Dictionary.


Permanent versus Temporary Association

When you specify an informat in an INPUT statement, SAS uses the informat to read input data values during that DATA step. SAS, however, does not permanently associate the informat with the variable. To permanently associate a format with a variable, use an INFORMAT statement or an ATTRIB statement. SAS permanently associates an informat with the variable by modifying the descriptor information in the SAS data set.


User-Defined Informats

In addition to the informats that are supplied with base SAS software, you can create your own informats. In base SAS software, PROC FORMAT allows you to create your own informats and formats for both character and numeric variables. For more information on user-defined informats, see the FORMAT procedure in the SAS Procedures Guide.

When you execute a SAS program that uses user-defined informats, these informats should be available. The two ways to make these informats available are

If you execute a program that cannot locate a user-defined informat, the result depends on the setting of the FMTERR= system option. If the user-defined informat is not found, then these system options produce these results:

System Options Results
FMTERR SAS produces an error that causes the current DATA or PROC step to stop.
NOFMTERR SAS continues processing by substituting a default informat.

Although using NOFMTERR enables SAS to process a variable, you lose the information that the user-defined informat supplies. This option can cause a DATA step to misread data, and it can produce incorrect results.

To avoid problems, make sure that users of your program have access to all the user-defined informats that are used.


Chapter Contents

Previous

Next

Top of Page

Copyright 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.