INPUTN Function
Enables you to specify a numeric informat at run time.
| Category: | Special |
|---|---|
| Note: | This function supports the VARCHAR type. |
Table of Contents
Syntax
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
;