Functions and CALL Routines |
Enables you to specify a character format at run time.
PUTC(source, format.<,w>)
|
-
source
-
specifies a character constant, variable,
or expression to which you want to apply the format.
-
format.
-
is a character constant, variable, or expression
with a value that is the character format you want to apply to source.
-
w
-
is a numeric constant, variable, or expression
that specifies a width to apply to the format.
Interaction: |
If you specify a
width here, it overrides any width specification in the format. |
If the PUTC function returns a value to
a variable that has not yet been assigned a length, by default the variable
length is determined by the length of the first argument.
The PUTN function enables you to specify a numeric format at
run time.
The PUT function is faster than PUTC because PUT lets you specify a
format at compile time rather than at run time.
The PROC FORMAT step in this example creates a format,
TYPEFMT., that formats the variable values 1, 2, and 3 with the name of one
of the three other formats that this step creates. These three formats output
responses of "positive," "negative," and "neutral" as different words, depending
on the type of question. After PROC FORMAT creates the formats, the DATA step
creates a SAS data set from raw data consisting of a number identifying the
type of question and a response. After reading a record, the DATA step uses
the value of TYPE to create a variable, RESPFMT, that contains the value of
the appropriate format for the current type of question. The DATA step also
creates another variable, WORD, whose value is the appropriate word for a
response. The PUTC function assigns the value of WORD based on the type of
question and the appropriate format.
proc format;
value typefmt 1='$groupx'
2='$groupy'
3='$groupz';
value $groupx 'positive'='agree'
'negative'='disagree'
'neutral'='notsure ';
value $groupy 'positive'='accept'
'negative'='reject'
'neutral'='possible';
value $groupz 'positive'='pass '
'negative'='fail'
'neutral'='retest';
run;
data answers;
length word $ 8;
input type response $;
respfmt = put(type, typefmt.);
word = putc(response, respfmt);
datalines;
1 positive
1 negative
1 neutral
2 positive
2 negative
2 neutral
3 positive
3 negative
3 neutral
;
The value of the variable WORD is agree
for the first observation. The value of the variable WORD is retest
for the last observation.
Copyright © 2011 by SAS Institute Inc., Cary, NC, USA. All rights reserved.