INPUTN Function

Enables you to specify a numeric informat at run time.

Category:Special
Note:This function supports the VARCHAR type.

Syntax

INPUTN(source, informat <, w<, d>>)

Required Arguments

source

specifies a character constant, variable, or expression to which you want to apply the informat.

informat

is a character constant, variable, or expression that contains the numeric informat that you want to apply to source.

Optional Arguments

w

is a numeric constant, variable, or expression that specifies a width to apply to the informat.

Interaction If you specify a width here, it overrides any width specification in the informat.

d

is a numeric constant, variable, or expression that specifies the number of decimal places to use.

Interaction If you specify a number here, it overrides any decimal-place specification in the informat.

Comparisons

The INPUTN function enables you to specify a numeric informat at run time. Using the INPUT function is faster because you specify the informat at compile time.

Example: Specifying Numeric Informats

This example shows how to specify numeric informats. The PROC FORMAT step creates a format, READDATE., that formats the variable values 1 and 2 with the name of a SAS date informat. The DATA step creates a SAS data set from raw data originally from two different sources (indicated by the value of the variable SOURCE). Each source specified dates differently. After reading a record, the DATA step uses the value of SOURCE to create a variable, DATEINFORMAT, that contains the value of the appropriate informat for reading the date. The DATA step also creates a new variable, NEWDATE, whose value is a SAS date. The INPUTN function assigns the value of NEWDATE based on the source of the observation and the appropriate informat.

   proc format;
      value readdate 1='date7.'
                     2='mmddyy8.';
   run;
   options yearcutoff=1940;
   data fixdates(drop=start dateinformat);
      length jobdesc $12;
      input source id lname $ jobdesc $ start $;
      dateinformat=put(source, readdate.);
      newdate=inputn(start, dateinformat);
      datalines;
   1 1604 Ziminski writer 09aug99
   1 2010 Clavell editor 26jan95
   2 1833 Rivera writer 10/25/98
   2 2222 Barnes proofreader 3/26/12
   ;

See Also

Last updated: April 14, 2026