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.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.