Data a;
input start label $9.;
fmtname="$abc";
cards;
101 bangalore
102 mangalore
103 mysore
104 bellary
105 davangere
;
proc format cntlin=a;
run;
data b;
input xyz;
format xyz $abc.;
cards;
101
102
104
108
;
proc print;
run;
In the above program, the format gets applied on the numeric variable. But when i create a numeric format and apply it on character variable, it will not work. can somebody explain to me this.
Thanks in advance.
Bharath.
I am not sure I full yunderstand your question. the code you have posted fails to run, as it should. Character formats, those ones with name starting $ can only be applied to character data, those formats without the dollar can only be assigned to numeric variables. Now in your example, the first dataset is reading the variable START in as a numeric, hence in the format step it is setting the format as numeric. In your second datastep you are also reading xyz in as numeric. If you change both input statements to :
input start $ label $9.;
and
input xyz $;
Then the code will run.
I understood why the program was runnnig in my session. I had a numeric as well as character format with the same name. Instead of applying character format, SAS was applying numeric format i guess.
The format that got created here (abc) will be a character format.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.